Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing HTTP path parsing #1117

Merged
merged 1 commit into from
Aug 30, 2022

Conversation

cccs-kevin
Copy link
Collaborator

The CAPE version of cuckoosandbox/cuckoo#3199

This sample https://www.virustotal.com/gui/file/a076938fa168d283115525aebeb972f8eba151566a82e06503c23e0d95c4dffa when run on Win7x64 calls out to http[://]208[.]67[.]105[.]179/damianozx[.]exe on port 8080.

The tcpdata for this network call (https://github.com/kevoreilly/CAPEv2/blob/master/modules/processing/network.py#L515) looks like this:

b'GET http[://]208[.]67[.]105[.]179/damianozx[.]exe HTTP/1.1\r\nAccept: */*\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)\r\nHost: 208[.]67[.]105[.]179\r\nProxy-Connection: Keep-Alive\r\n\r\n'

As you can see, the host is found within the "URI" portion of "GET " where the "URI" is supposed to be just the path, in this case "/damianozx[.]exe". When these components get put together using urlunparse (https://github.com/kevoreilly/CAPEv2/blob/master/modules/processing/network.py#L545), the resulting URL looks like this http[://]208[.]67[.]105[.]179[:[8080/http[://]208[.]67[.]105[.]179/damianozx[.]exe which is obviously incorrect.

We need to pop the host out of the path if it is in there. The elif is for when a non-80 port is used.

@doomedraven doomedraven merged commit cc23ab8 into kevoreilly:master Aug 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants