UNPKG

ya-express-ntlm

Version:
74 lines 3.82 kB
"use strict"; /* eslint-disable no-console */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.startCoder = void 0; const dotenv = __importStar(require("dotenv")); const express_1 = __importDefault(require("express")); const fs = __importStar(require("fs")); const path = __importStar(require("path")); const index_1 = require("../index"); const createMessageType1_1 = require("../../node-ntlm-core/createMessageType1"); const createMessageType2_1 = require("../../node-ntlm-core/createMessageType2"); const createMessageType3_1 = require("../../node-ntlm-core/createMessageType3"); const startCoder = () => { dotenv.config(); const host = process.env.DECODER_HOST || 'localhost'; const port = Number(process.env.DECODER_PORT) || 8081; const app = (0, express_1.default)(); app.use(express_1.default.json()); app.post('/create', (req, res) => { const { domain = '', workstation = '', username = '', password = '' } = req.body; const messageType1Buf = (0, createMessageType1_1.createMessageType1Buf)({ domain, workstation }); const messageType1 = `NTLM ${messageType1Buf.toString('base64')}`; const messageType2Buf = (0, createMessageType2_1.createMessageType2)(messageType1Buf); const messageType2 = `NTLM ${messageType2Buf.toString('base64')}`; const messageType2BufAnother = (0, createMessageType3_1.parseType2Message)(messageType2); const messageType3 = (0, createMessageType3_1.createMessageType3)(messageType2BufAnother, { domain, workstation, username, password }); res.setHeader('Content-Type', 'application/json').send(JSON.stringify({ messageType1, messageType2, messageType3 })); }); app.post('/decode', (req, res) => { let { message } = req.body; message = message.trim().replace(/(?:(?:Authorization|WWW-Authenticate): )?NTLM(?: |$)/, ''); const parsedData = (0, index_1.ntlmParse)(message); res.setHeader('Content-Type', 'application/json').send(JSON.stringify(parsedData)); }); app.get('/', (req, res) => { let html = fs.readFileSync(path.join(__dirname, 'coder.html').replace(/[\\/]dist[\\/](?:cjs|esm)/, ''), { encoding: 'utf8' }); html = html.replace(/{{host}}/g, host).replace(/{{port}}/g, String(port)); res.setHeader('Content-Type', 'text/html; charset=utf-8').send(html); }); app.all('*', (req, res) => { res.status(404).send('404 Not found'); }); app.listen(port, () => { console.log(`Decoder web server listening on http://localhost:${port}`); }); }; exports.startCoder = startCoder; //# sourceMappingURL=coder.js.map