一句话开启HTTP服务

1 年前

在实际的渗透测试中,有的时候需要自己创建一个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这样的服务器,方便快捷,以后在渗透测试中如何使用,大家自由发挥,我就不多说了。

发布于 2022-03-03 15:51