Skip to content

Instantly share code, notes, and snippets.

@mgeeky
Forked from X-C3LL/msteams-token.js
Created January 12, 2023 00:47
Show Gist options
  • Save mgeeky/72b080e7f17ab15120ba6347539e1746 to your computer and use it in GitHub Desktop.
Save mgeeky/72b080e7f17ab15120ba6347539e1746 to your computer and use it in GitHub Desktop.
// Obtain teams token - you can reuse it for GoMapEnum for example
// Author: Juan Manuel Fernandez (@TheXC3LL)
const puppeteer = require('puppeteer');
(async () => {
console.log("\t\tMS Teams Token Generator - @TheXC3LL\n\n");
const username = process.argv[2];
const password = process.argv[3];
console.log("[*] Using credentials: %s:%s", username, password);
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Detect URL changes
page.on('framenavigated', frame => {
const url = frame.url();
if (url.startsWith('https://teams.microsoft.com/go') && url.indexOf('token_type=Bearer') > 0){
const token = url.substring(url.indexOf('access_token=') + 13, url.lastIndexOf('&token_type=Bearer'));
console.log("[*] Encoded Teams token: \n\n" + token + "\n\n");
console.log("[^] Have a nice day!")
process.exit();
}
});
// Login
await page.goto('https://teams.microsoft.com/');
page.waitForNavigation();
await page.waitForSelector('[name="loginfmt"]');
await page.type('[name="loginfmt"]', username);
await page.click('[type="submit"]');
page.waitForNavigation();
await page.waitForSelector('input[type="password"]');
await page.type('input[type="password"]', password);
await page.waitForTimeout(1000);
await page.click('[type="submit"]');
page.waitForNavigation();
await page.waitForTimeout(3000);
await page.keyboard.press('Enter');
console.log("[*] Processing URLs... it can take a few seconds!");
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment