一句话开启HTTP服务
在实际的渗透测试中,有的时候需要自己创建一个http服务,来辅助我们的渗透测试,往往我们会遇到各种各样不同的环境,所以使用简单的方式在不同环境下创建一个HTTP服务还是非常有用的。下面我们就简单介绍下,在不同环境下使用一句话启动HTTP服务的各种姿势。
Python
对于不同的python版本有不同的方式,下面就一一介绍。
Python <= 2.3
python -c "import SimpleHTTPServer as s; s.test();" 8000
Python >= 2.4
python -m SimpleHTTPServer 8000
Python 3.x
python -m http.server 8000
Python (Twisted)
这个需要安装Twisted模块,在已经安装了Twisted模块的情况下,可以执行以下命令:
twistd -n web -p 8000 --path .
或者:
python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'
如果你想用这种方式启动,而且目标没有安装这个库,可以使用一下命令安装:
pip install twisted
Ruby
下面介绍一下针对不同版本的ruby实现这个功能的方法。
Ruby 1.9.2+
在不依赖库的情况下执行以下命令:
ruby -run -e httpd . -p8000
Ruby (webrick)
这个方式需要目标环境安装了webrick这个库,需要的ruby版本< 1.9.3。
ruby -r webrick -e 'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'
如何安装这个库:
gem install webrick
如何关闭这个进程:
执行ctrl+z后,使用kill -9 pid的方式干掉进程
Perl
perl中有几个库可以完成这个功能,如下:
Perl (HTTP::Server::Brick)
安装必要库:
cpan HTTP::Server::Brick
一句话启动服务:
perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'
Perl (IO::All)
安装必要库:
cpan IO::All
一句话启动服务:
perl -MIO::All -e 'io(":8080")->fork->accept->(sub { $_[0] < io(-x $1 ? "./$1 |" : $1) if /^GET \/(.*) / })'
Perl (Mojolicious)
安装必要库:
cpan Mojolicious::Lite
一句话启动服务:
perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000
PHP
php版本需要大于 5.4才能一句话实现这个功能:
php -S 127.0.0.1:8000
Erlang
Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。
执行一下命令启动服务:
erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'
busybox httpd
BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。
可以使用BusyBox中的httpd启动服务:
busybox httpd -f -p 8000
webfs
webfs是一个简单的http服务器,主要是静态内容。
使用以下命令启动服务:
webfsd -F -p 8000
IIS Express
在Windows环境下,可下载IIS Express,然后启动:
C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000
下载地址如下:
https://docs.microsoft.com/en-us/iis/extensions/introduction-to-iis-express/iis-express-overview
安装测试
软件下载地址:
https://download.microsoft.com/download/D/C/4/DC4EC38C-A6AA-449D-9B19-7ABC6DF72B34/iisexpress_1_11_x86_en-US.msi
安装完成后,在命令行下启动,如图:
浏览器访问一下,如图:
总结
本文大概介绍了一下,如何使用很短的命令或者代码启动一个简单的http服务,提供下载,浏览服务。我们可以利用这个功能,不管是从内网下载资料,还是利用外网服务,远程下载执行命令都是非常有用的,省的我们需要的时候安装像apache这样的服务器,方便快捷,以后在渗透测试中如何使用,大家自由发挥,我就不多说了。